如何将 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) 我有一个聚合的 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) 我正在研究spark数据帧,我需要按列进行分组,并将分组行的列值转换为元素数组作为新列.示例:
Input:
employee | Address
------------------
Micheal | NY
Micheal | NJ
Output:
employee | Address
------------------
Micheal | (NY,NJ)
Run Code Online (Sandbox Code Playgroud)
任何帮助都非常感谢.