首页 > 解决方案 > 从 Spark DataFrame 中列出的所有列的不同之处

问题描述

我有一个如下所示的数据框,我想将其转换为预期格式作为列表中的不同值。

+---------------------+---------------+
|col1                 |col2           |
+---------------------+---------------+
|                  A  |             1 |
|                  B  |             2 |
|                  C  |             1 |
|                  D  |             1 |
|                  A  |             2 |
|               null  |             1 |
+---------------------+---------------+

预期格式

+---------------------+---------------+
|col1                 |col2           |
+---------------------+---------------+
|      [A,B,C,D,null] |         [1,2] |
+---------------------+---------------+

有什么办法可以解决上面的问题吗???

提前致谢 !!

标签: scalaapache-sparkapache-spark-sqlapache-spark-dataset

解决方案


你可以做这样的事情

import spark.implicits._

df
  .na.fill("null", Seq("col1"))
  .agg(
     func.collect_set($"col1").alias("col1"),
     func.collect_set($"col2").alias("col2")
  )

推荐阅读