首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >UDF转换输出

UDF转换输出
EN

Stack Overflow用户
提问于 2017-11-22 18:32:21
回答 1查看 48关注 0票数 0

在Pyspark上,我定义了一个UDF如下:

代码语言:javascript
复制
from pyspark.sql.functions import udf
from scipy.spatial.distance import cdist

def closest_point(point, points):
    """ Find closest point from a list of points. """
    return points[cdist([point], points).argmin()]

udf_closest_point = udf(closest_point)

dfC1 = dfC1.withColumn("closest", udf_closest_point(dfC1.point, dfC1.points))

我的数据是这样的:

  • 点= 0.2,0.5或0.1,0.6 -浮点数数组
  • 点=[0,1,1,0,1,1,1,0]-浮点数数组
  • 最近=例如,'0,1‘-字符串(它是从点转换成字符串的值之一)

对于我的UDF,我应该更改什么来返回一个浮点数数组,而不是一个字符串?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-22 18:37:30

可以将UDF的返回类型指定为浮点数ArrayType(FloatType())数组。

代码语言:javascript
复制
from pyspark.sql.types import ArrayType, FloatType
udf_closest_point = udf(closest_point, ArrayType(FloatType()))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47441689

复制
相关文章

相似问题

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