【发布时间】:2017-02-19 00:07:36
【问题描述】:
我有下一个数据框:
df.show()
+---------------+----+
| x| num|
+---------------+----+
|[0.1, 0.2, 0.3]| 0|
|[0.3, 0.1, 0.1]| 1|
|[0.2, 0.1, 0.2]| 2|
+---------------+----+
此 DataFrame 具有以下列的数据类型:
df.printSchema
root
|-- x: array (nullable = true)
| |-- element: double (containsNull = true)
|-- num: long (nullable = true)
我目前尝试将 DataFrame 内的 DoubleArray 转换为 FloatArray。我用 udf 的下一条语句来做:
val toFloat = udf[(val line: Seq[Double]) => line.map(_.toFloat)]
val test = df.withColumn("testX", toFloat(df("x")))
此代码当前无效。谁能和我分享一下如何更改DataFrame内部的数组类型的解决方案?
我想要的是:
df.printSchema
root
|-- x: array (nullable = true)
| |-- element: float (containsNull = true)
|-- num: long (nullable = true)
这个问题是基于问题How tho change the simple DataType in Spark SQL's DataFrame
【问题讨论】:
标签: scala apache-spark dataframe types