我可以在 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
中有非常相似的方法
我有一个 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
中有非常相似的方法