相关疑难解决方法(0)

Spark 将单列转换为数组

如何将 Spark 2.0.1 中的单个列转换为数组?

+---+-----+
| id| dist| 
+---+-----+
|1.0|2.0|
|2.0|4.0|
|3.0|6.0|
|4.0|8.0|
+---+-----+
Run Code Online (Sandbox Code Playgroud)

应该返回Array(1.0, 2.0, 3.0, 4.0)

A

import scala.collection.JavaConverters._ 
df.select("id").collectAsList.asScala.toArray
Run Code Online (Sandbox Code Playgroud)

失败了

java.lang.RuntimeException: Unsupported array type: [Lorg.apache.spark.sql.Row;
java.lang.RuntimeException: Unsupported array type: [Lorg.apache.spark.sql.Row;
Run Code Online (Sandbox Code Playgroud)

scala apache-spark apache-spark-sql

7
推荐指数
2
解决办法
2万
查看次数

Spark SQL:在数组值上使用collect_set?

我有一个聚合的 DataFrame,其中有一列使用collect_set. 我现在需要再次聚合这个 DataFrame,并再次应用于collect_set该列的值。问题是我需要应用collect_Set集合的值 - 到目前为止,我看到的唯一方法是分解聚合的 DataFrame。有没有更好的办法?

例子:

初始数据帧:

country   | continent   | attributes
-------------------------------------
Canada    | America     | A
Belgium   | Europe      | Z
USA       | America     | A
Canada    | America     | B
France    | Europe      | Y
France    | Europe      | X
Run Code Online (Sandbox Code Playgroud)

聚合数据帧(我作为输入接收的那个) - 聚合country

country   | continent   | attributes
-------------------------------------
Canada    | America     | A, B
Belgium   | Europe      | Z
USA       | America     | A
France    | …
Run Code Online (Sandbox Code Playgroud)

java apache-spark apache-spark-sql

5
推荐指数
1
解决办法
4538
查看次数

将行值转换为spark数据帧中的列数组

我正在研究spark数据帧,我需要按列进行分组,并将分组行的列值转换为元素数组作为新列.示例:

Input:

employee | Address
------------------
Micheal  |  NY
Micheal  |  NJ

Output:

employee | Address
------------------
Micheal  | (NY,NJ)
Run Code Online (Sandbox Code Playgroud)

任何帮助都非常感谢.

scala apache-spark spark-dataframe

1
推荐指数
2
解决办法
9949
查看次数