一、通过spark-submit 提交报错如下 yarn运行模式
spark用的版本是2.4.0是支持pandas_udf的,而且通过pyspark的shell命令行一条条执行 都是没有问题的 但是将代码作为文件用spark submit提交就报这个错误
二、解决办法:
@pandas_udf(returnType=“string”, PandasUDFType.GROUPED_AGG)中的修改为@pandas_udf(StringType(),PandasUDFType.GROUPED_AGG)
三、疑惑
1、为何shell命令行可以执行
2、官方文档中有
@pandas_udf(“double”, PandasUDFType.GROUPED_AGG)
这样的示例,用spark submit也尝试过用double 也是报同样的错误,
官方文档中对函数参数的说明是,
GROUPED_AGG
A grouped aggregate UDF defines a transformation: One or more pandas.Series -> A scalar
The returnType should be a primitive data type, e.g., DoubleType.
The returned scalar can be either a python primitive type, e.g., int or float
or a numpy data type, e.g., numpy.int64 or numpy.float64.
三、spark-submit命令详解
https://xinancsd.github.io/Python/spark-submit_usage.html
spark-submit --master yarn --deploy-mode client --py-files XXX.zip XXX.py