在运行时评估PySpark UDF参数



我有一个注册到pyspark的udf,它的任务是通过使用函数的参数a和b构建url来查询web。在运行时,它在print语句中将参数求值为Column<b'(colA + colB)'>

如何获取参数a和b中的字符串?

def udf_func(a, b):
print(a + b)
return requests.get(a + b)
get = udf(udf_func, ByteType())
df = df.withColumn("output", get(col("colA"), col("colB")))

感谢

您可以如下修改您的函数:

def udf_func(a, b): return requests.get(a + b)
get = udf(lambda a,b : udf_func(a,b), ByteType())
df = df.withColumn("output", get(col("colA"), col("colB")))

我不相信你可以在udf中打印值,因此我已经删除了它,但这应该对你有效。

最新更新