我可以在 DataFrame.selectExpr 中使用 python 函数吗

Can I use a python function in DataFrame.selectExpr

我有一个 DataFrame,我正在

上执行 selectExpr

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

有什么办法可以在 Python 函数的 dist 列上设置路径吗?

我来自 scala,但在 python 中显然有类似的方法。 sql.fucnctions 包中的 udf 函数允许开发人员创建自己的 UserDefinedFunction 并在 spark Dataframe 操作和 SQL 查询中使用它们。 这是可以执行您所要求的代码

val constumeFunction = udf((x: Double, y: Double, z: Double, t: Double) => pow(x - y, 2) + pow(z - t, 2))

然后您可以在 select 方法中调用此 UserDefinedFunction,如下所示:

selectExpr($"src.ID", $"dst.ID",costumeFunction(src.X, dst.X, src.Y, dst.Y) as dist")

很抱歉用 Scala 代码回答,但我确信 python

中有非常相似的方法