首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DataType浇铸的udf函数

DataType浇铸的udf函数
EN

Stack Overflow用户
提问于 2016-10-10 14:21:25
回答 1查看 1.4K关注 0票数 0

我有下一个DataFrame:

代码语言:javascript
复制
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具有以下列的数据类型:

代码语言:javascript
复制
df.printSchema 
root
 |-- x: array (nullable = true)
 |    |-- element: double (containsNull = true)
 |-- num: long (nullable = true)

目前,我尝试将DataFrame中的DataFrame转换为FloatArray。我在udf的下一次声明中这样做:

代码语言:javascript
复制
val toFloat = udf[(val line: Seq[Double]) => line.map(_.toFloat)]
val test = df.withColumn("testX", toFloat(df("x")))

此代码目前不起作用。有人能和我分享如何改变DataFrame的数组类型吗?

我想要的是:

代码语言:javascript
复制
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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-10 14:45:43

你的udf被错误地宣布了。你应该把它写成如下:

代码语言:javascript
复制
val toFloat = udf((line: Seq[Double]) => line.map(_.toFloat))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39960480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档