PySpark 用户定义函数的问题

问题描述 投票:0回答:1

为什么我的 pyspark 应用程序因用户定义的函数而失败?

    multiplier = udf(lambda x: float(x) * 100.0, FloatType())
    df = df.select(multiplier(df['value']).alias('value_percent'))

抛出的错误是

在阶段 1.0 (TID 1) 中丢失任务 0.0(127.0.0.1 执行器驱动程序): org.apache.spark.SparkException:Python 工作线程意外退出
....
java.io.EOFException

但更奇怪的是,相同的代码(具有相同的 UDF 函数和相同的数据集)实际上可以在 jupyter note 上运行。


火花版本:3.5.3
python版本:3.11.9
操作系统:Windows。

python apache-spark pyspark apache-spark-sql
1个回答
0
投票

请验证,如果 df['value'] 包含字符串或其他无法转换为 float 的数据类型,尝试在 UDF 内进行转换可能会导致错误。

© www.soinside.com 2019 - 2024. All rights reserved.