我是PySpark的新手。我一直在用测试示例编写代码。一旦我在更大的文件上运行了代码(3gb压缩)。我的代码只做一些过滤和联接。我不断收到有关py4J的错误。
任何帮助都是有用的,并且会受到赞赏。
from pyspark.sql import SparkSession
from pyspark.conf import SparkConf
ss = SparkSession \
.builder \
.appName("Example") \
.getOrCreate()
ss.conf.set("spark.sql.execution.arrow.enabled", 'true')
df = ss.read.csv(directory + '/' + filename, header=True, sep=",")
# Some filtering and groupbys...
df.show()
返回
Py4JJavaError: An error occurred while calling o88.showString.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 0 in
stage 3.0 failed 1 times, most recent failure: Lost task 0.0 in stage 3.0 (TID
1, localhost, executor driver): java.lang.OutOfMemoryError: Java heap space
...
Caused by: java.lang.OutOfMemoryError: Java heap space
更新: 我使用的是py4j 10.7,只是更新为10.8
UPDATE(1):添加spark.driver.memory:
ss = SparkSession \
.builder \
.appName("Example") \
.config("spark.driver.memory", "16g")\
.getOrCreate()
汇总错误:
ERROR:py4j.java_gateway:An error occurred while trying to connect to the Java server (127.0.0.1:38004)
py4j.protocol.Py4JNetworkError: Answer from Java side is empty
"Error while receiving", e, proto.ERROR_ON_RECEIVE)
py4j.protocol.Py4JNetworkError: Error while receiving
Py4JError
Py4JError: An error occurred while calling o94.showString
UPDATE(2):我通过更改spark-defaults.conf文件进行了尝试。仍然出现错误PySpark: java.lang.OutofMemoryError: Java heap space
半解决:这似乎是一个普遍的内存问题。我用32g内存启动了一个2xlarge实例。该程序运行没有错误。
知道了这一点,还有什么其他的配置选项可以帮助您,所以我不必运行昂贵的实例?
谢谢大家。
答案 0 :(得分:0)
这是通过conda安装的pyspark 2.4.0的当前问题。您将需要通过conda提示符或Linux终端降级到pyspark 2.3.0:
<ul>
<li *ngFor="let info of infos">{{info}}
<ol *ngFor="let queue of queues | async">{{queue.SKU}}</ol>
</li>
</ul>
答案 1 :(得分:0)
您可能没有正确的权限。
当我使用docker映像jupyter/pyspark-notebook
运行pyspark的示例代码时,我遇到了同样的问题,并且通过在容器内使用root来解决了该问题。
任何人也可以使用该图片找到here的提示。