簡體   English   中英

Py4JJavaError:調用時發生錯誤

[英]Py4JJavaError: An error occurred while calling

我是 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

更新(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

半解決:這似乎是一個普遍的內存問題。 我啟動了一個 2xlarge 實例,內存為 32g。 程序運行沒有錯誤。

知道了這一點,還有其他的東西,一個 conf 選項可以幫助我不必運行昂貴的實例嗎?

謝謝大家。

這是通過 conda 安裝的 pyspark 2.4.0 的當前問題。 您需要通過 conda 提示符或 Linux 終端降級到 pyspark 2.3.0:

    conda install pyspark=2.3.0

您可能沒有正確的權限。

我在使用jupyter/pyspark-notebook鏡像jupyter/pyspark-notebook運行pyspark的示例代碼時也遇到了同樣的問題,通過在容器內使用root解決了。

使用該圖像的任何人都可以在此處找到一些提示。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM