在聚合group by期间,当前我取第一个值。但是我需要visit\u id列的第一个not null值。请让我知道,如果有任何方法在斯卡拉Spark。
DF.groupBy("id").agg(lit(first(col("visit_id"))).alias("visit_id")
提前谢谢。
egdjgwm81#
你可以用 ignoreNulls 中的参数 first :例子:
ignoreNulls
first
val df = Seq((1, Some(2)), (1, None), (2, None), (2, Some(3))).toDF("id", "visit_id") df.show +---+--------+ | id|visit_id| +---+--------+ | 1| 2| | 1| null| | 2| null| | 2| 3| +---+--------+ df.groupBy("id").agg(first("visit_id", ignoreNulls=true).as("visit_id")).show +---+--------+ | id|visit_id| +---+--------+ | 1| 2| | 2| 3| +---+--------+
1条答案
按热度按时间egdjgwm81#
你可以用
ignoreNulls
中的参数first
:例子: