Bab*_*abu 0 scala dataframe apache-spark
在聚合分组期间,目前我正在取第一个值。但我需要 Visit_id 列的第一个非空值。Spark Scala 中是否有任何方法,请告诉我。
DF.groupBy("id").agg(lit(first(col("visit_id"))).alias("visit_id")
Run Code Online (Sandbox Code Playgroud)
提前致谢。
您可以在以下位置使用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|
+---+--------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1969 次 |
| 最近记录: |