0
我有未来数据框:UDF函数的数据类型铸造,斯卡拉
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|
+---------------+----+
该数据帧已经跟随列的数据类型:
df.printSchema
root
|-- x: array (nullable = true)
| |-- element: double (containsNull = true)
|-- num: long (nullable = true)
我尝试目前转换的doubleArray数据框内部的FloatArray 。我用udf的下一条语句来做:
val toFloat = udf[(val line: Seq[Double]) => line.map(_.toFloat)]
val test = df.withColumn("testX", toFloat(df("x")))
此代码目前无法使用。任何人都可以与我分享解决方案如何更改DataFrame类型inseide?
我要的是:
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
@cheseaus,非常感谢。我不知道val是多余的,括号是错误的。我只是现在学习udf语法和用法 – Guforu