[英]Get first not null value spark scala on a dataframe during aggregation
在聚合分組依據期間,當前我采用第一個值。 但是我需要visit_id列的第一個非null值。 請讓我知道Spark Scala中是否有任何方法。
DF.groupBy("id").agg(lit(first(col("visit_id"))).alias("visit_id")
提前致謝。
您可以使用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|
+---+--------+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.