我有下表
团队 | 团队_类别 | 分数1 | 分数2 | 分数3 | 分数4 | 分数5 | 分数6 | 分数7 | 分数8 |
---|---|---|---|---|---|---|---|---|---|
A41 | 自行车 | 40 | 91 | 51 | |||||
A57 | 自行车 | 60 | 47 |
NULL
如果以前的分数是或 ,我想左移这些值""
所需的输出是:
团队 | 团队_类别 | 分数1 | 分数2 | 分数3 | 分数4 | 分数5 | 分数6 | 分数7 | 分数8 |
---|---|---|---|---|---|---|---|---|---|
A41 | 自行车 | 40 | 91 | 51 | |||||
A57 | 自行车 | 60 | 47 |
我尝试使用coalesce
像
spark.sql("""SELECT Team, Team_Category, COALESCE(NULLIF(Score1,""),NULLIF(Score2,""),...NULLIF(Score8,"")) AS Score1, COALESCE(NULLIF(Score2,""),NULLIF(Score3,"")...NULLIF(Score8,"")) AS Score2,...""")
但这只能解决一半问题。尽管这些值现在将移至左侧,但右侧的值仍然存在。
如何使用 Spark sql 来完成此操作?
注意:一个团队可以有多行,但它们是相互独立的。