gpt4 book ai didi

scala - Spark将单列转换为数组

转载 作者:行者123 更新时间:2023-12-01 13:40:44 24 4
gpt4 key购买 nike

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

+---+-----+
| id| dist|
+---+-----+
|1.0|2.0|
|2.0|4.0|
|3.0|6.0|
|4.0|8.0|
+---+-----+

应该返回 Array(1.0, 2.0, 3.0, 4.0)
一种
import scala.collection.JavaConverters._ 
df.select("id").collectAsList.asScala.toArray

失败
java.lang.RuntimeException: Unsupported array type: [Lorg.apache.spark.sql.Row;
java.lang.RuntimeException: Unsupported array type: [Lorg.apache.spark.sql.Row;

最佳答案

我会用 dataframe aggregate function - collect_list() 尝试这样的事情以避免驱动程序 JVM 上的内存开销。用这种方法 只有选定的列值将被复制到驱动程序 JVM .

df.select(collect_list("id")).first().getList[Double](0)

这将返回 java.util.List[Double] .

关于scala - Spark将单列转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40529958/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com