Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 将RDD[Array[Double]]转换为DataFrame[Array[Double]]会生成DataFrame[WrappedArray]_Arrays_Scala_Spark Dataframe - Fatal编程技术网

Arrays 将RDD[Array[Double]]转换为DataFrame[Array[Double]]会生成DataFrame[WrappedArray]

Arrays 将RDD[Array[Double]]转换为DataFrame[Array[Double]]会生成DataFrame[WrappedArray],arrays,scala,spark-dataframe,Arrays,Scala,Spark Dataframe,我有一个格式为long,int,string,Array[Double]的RDD,我需要将其转换为数据帧。myRDD.toDF()的转换工作正常,但我的问题是数组[Double]功能被转换为WrappedArray[Double]。结果架构是: root |-- _1: long (nullable = false) |-- _2: integer (nullable = false) |-- _3: string (nullable = true) |-- _4: array (nul

我有一个格式为
long,int,string,Array[Double]
的RDD,我需要将其转换为数据帧。
myRDD.toDF()
的转换工作正常,但我的问题是数组[Double]功能被转换为WrappedArray[Double]。结果架构是:

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

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

您希望对_4列执行什么操作。有很多内置函数可以应用,而且可以使用udf函数应用自定义逻辑。只需指定要执行的操作,我将尝试对5行进行采样、转置,并创建一个新数组,该数组在这5行上具有平均值。这不起作用,因为“数组”被视为字符串。我将尝试解析文本(删除“WrappedArray”(“并在公共空间上拆分”),但这似乎效率很低。您能否使用示例输入和预期输出更新问题“WrappedArray列似乎被视为字符串…”这并不是自发发生的。你几乎肯定在做一些你不想做的事情,包括意外地转换成
字符串。