我有DataFrame
我正在执行selectExpr
selectExpr("src.ID", "dst.ID", "SQRT(POW((src.X - dst.X),2) + POW((src.Y - dst.Y),2)) as dist") \
有什么办法可以在Python函数的dist
列上做这个路径吗?
答案 0 :(得分:1)
我是来自scala但是在python中显然有类似的方式。
udf
包中的sql.fucnctions
函数允许开发人员创建自己的UserDefinedFunction
并在spark Dataframe
操作和SQL
查询中使用它们。
这是可以执行您所要求的代码的代码
val constumeFunction = udf((x: Double, y: Double, z: Double, t: Double) => pow(x - y, 2) + pow(z - t, 2))
然后您可以在UserDefinedFunction
方法中调用此select
,如下所示:
selectExpr($"src.ID", $"dst.ID",costumeFunction(src.X, dst.X, src.Y, dst.Y) as dist")
很抱歉使用Scala代码回答,但我确信在python中有一种非常类似的方式