【Pyspark】报错:py4j.protocol.Py4JJavaError

py4j.protocol.Py4JJavaError

 

找到报错信息:

310                 raise Py4JJavaError(
    311                     "An error occurred while calling {0}{1}{2}.\n".
--> 312                     format(target_id, ".", name), value)
    313             else:
    314                 raise Py4JError(

 

查了一下:

发现应该是和数据读写相关的问题

https://cloud.tencent.com/developer/ask/171878

https://blog.csdn.net/eat_shopping/article/details/78251442

https://stackoverflow.com/questions/26892389/org-apache-spark-sparkexception-job-aborted-due-to-stage-failure-task-from-app

 

使用场景:

在pyspark中调用了一个udf

该udf将输入的string 经过一系列操作后 重新写为新的string进行输出

我在写新的string的时候,使用了join函数

应该用 "sep".join(list)

实际上我用了 ("sep").join(list) 

虽然在python中这两个返回的结果是一样的,但是在pysoark中就产生了数据读写方面的错误

 

解决办法:

更改输出形式为标准形式

你可能感兴趣的:(报错)