簡體   English   中英

聚合期間在數據幀上獲取第一個非空值的火花scala

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM