0

我有一个DataFrame我正在执行selectExpr

selectExpr("src.ID", "dst.ID", "SQRT(POW((src.X - dst.X),2) + POW((src.Y - dst.Y),2)) as dist") \

有什么办法可以dist在 Python 函数中的列上执行路径?

4

1 回答 1

1

我来自 scala,但在 python 中显然有类似的方式。包中的udf功能sql.fucnctions允许开发人员创建自己的UserDefinedFunction并在 sparkDataframe操作和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 中有一种非常相似的方式

于 2017-05-17T00:39:52.617 回答