如何在PySpark中不使用SQL调用Spark Java UDF?
在PySpark中无SQL方式调用注册的Java UDF
你可以通过PySpark的functions.expr()函数实现无SQL方式调用已注册的Java UDF,具体写法如下:
from pyspark.sql import functions as F # 直接在expr中使用已注册的UDF名称和列 df2 = df.withColumn("mapped", F.expr("test_udf(my_col)"))
expr()函数能够直接解析SQL表达式字符串,这里传入你注册的UDF名称及列参数,就能在DataFrame的withColumn操作中完成调用,效果和SQL查询完全一致。
如果需要动态指定列名,也可以结合字符串格式化来实现:
target_col = "my_col" df2 = df.withColumn("mapped", F.expr(f"test_udf({target_col})"))
内容的提问来源于stack exchange,提问作者johngreen
相关产品推荐
相关产品推荐

