我想转换每列的DataFrame聚合值。让我用一个例子说明它:
鉴于此DataFrame:
val df = sc.parallelize(Seq(("A","B","C"), ("D", "E", "F"), ("X", "Y", "Z"), ("A", "N", "Z"))).toDF("col1", "col2", "col3")
df.show()
+----+----+----+
|col1|col2|col3|
+----+----+----+
| A| B| C|
| D| E| F|
| X| Y| Z|
| A| N| Z|
+----+----+----+
预期的输出应该是这样的:
col1: Array("A", "D", "X")
col2: Array("B", "E", "Y", "N")
col3: Array("C", "F", "Z")
考虑真正的DataFrame可能包含大约数百列。没有必要保留输出中列的顺序。
编辑:您也可以考虑在列中找到重复的元素,但只需要唯一的元素。
我正在使用带有scala 2.11的Spark 2.0.2。
有什么建议吗?
提前致谢!
答案 0 :(得分:2)
您可以应用Executing tasks: [:app:generateDebugSources, :app:generateDebugAndroidTestSources, :app:mockableAndroidJar, :app:prepareDebugUnitTestDependencies]
NullPointerException: null
和groupBy
,但如果您的行数较高,我会怀疑其表现。
collect_set