首页 > 解决方案 > 将 RDD[Array[Double]] 转换为 DataFrame[Array[Double]] 产生 DataFrame[WrappedArray]

问题描述

我有一个 RDD long, int, string, Array[Double],我需要将其转换为 DataFrame。转换myRDD.toDF()工作正常,但我的问题是 Array[Double] 功能转换为 WrappedArray[Double]。生成的架构是:

root
 |-- _1: long (nullable = false)
 |-- _2: integer (nullable = false)
 |-- _3: string (nullable = true)
 |-- _4: array (nullable = true)
 |    |-- element: double (containsNull = false)

我遇到的问题是我无法对_4列应用操作,就好像它是我可以在 RDD 上执行的值数组一样。这些WrappedArray列似乎被视为以 开头的字符串WrappedArray(10.0, 33.4, 1.2, ...)。在 RDD 上,我可以在这些元素上应用地图,但不能在 DataFrame 列上应用。将元素从 RDD 转换为 DataFrame 列的正确方法是什么,Array[Double]以便将值视为一系列数字,而不是字符串"WrappedArray(....)"

标签: arraysscalaspark-dataframe

解决方案


推荐阅读