val rdd= sc.parallelize(List(41,42,43,44,45,46,47,48,49,50))
val df = rdd.toDF("numbers")
val now = what.select(when($"numbers" % 2===0,$"numbers").otherwise("").as("Even"),
when($"numbers"%2===1,$"numbers").otherwise("").as("Odd"))
.orderBy("Even","Odd").show
+----+---+
|Even|Odd|
+----+---+
| | 41|
| | 43|
| | 45|
| | 47|
| | 49|
| 42| |
| 44| |
| 46| |
| 48| |
| 50| |
+----+---+
我想删除偶数列和奇数列中的空值,怎么做?
预期产量:
+----+---+
|Even|Odd|
+----+---+
| 42| 41|
| 44| 43|
| 46| 45|
| 48| 47|
| 50| 49|
+----+---+
2条答案
按热度按时间bf1o4zei1#
有很多方法可以做到这一点,这里有一种方法可以为每个偶数获取之前的奇数:
odopli942#
不确定这里的用例是什么,但是您可以创建偶数和奇数值的单独Dataframe,使用rddapi将它们压缩在一起,然后将结果转换回Dataframe。这是笨重的,但它不是一个真正的问题,在Spark的驾驶室。