取消
顯示的結果
而不是尋找
你的意思是:

. lang。OutOfMemoryError: GC開銷限製超過。(解決)

sarvesh
貢獻者三世

解決方案:

我不需要添加任何遺囑執行人或驅動程序內存中所有我必須要做我的情況下被添加:——選項(“maxRowsInMemory”, 1000)。

之前我甚至不讀9 mb文件現在我剛讀了一個50 mb的文件沒有任何錯誤。

{

瓦爾df=火花.read

.format (“com.crealytics.spark.excel”)。

選項(“maxRowsInMemory”, 1000)。

選項(“頭”,“真正的”)。

加載(“數據/ 12 file.xlsx”)

}

我想讀8 mb的excel文件,

我得到這個錯誤。

我使用intellij如果是2.4.4火花

scala 2.12.12

jdk 1.8和

這是我的代碼:-

瓦爾相依= new SparkConf ()

這裏(“spark.driver.memory”、“4 g”)

這裏(“spark.executor。內存”、“6克”)

/ /這裏(“spark.executor。核”、“2”)

瓦爾火花= SparkSession

構建器

.appName (“trimTest”)

部分(“地方[*]”)

. config (相依)

.getOrCreate ()

瓦爾df=火花.read

.format (“com.crealytics.spark.excel”)。

選項(“頭”,“真正的”)。

加載(“數據/ 12 file.xlsx”)

現在,這些是我的火花界麵截圖,

你能告訴我什麼是主要問題,我怎麼能增加作業執行器的記憶。

編輯火花界麵2編輯火花ui 1

棧:

. lang。OutOfMemoryError: GC開銷限製超過

java.lang.Class.newReflectionData (Class.java: 2511)

java.lang.Class.reflectionData (Class.java: 2503)

java.lang.Class.privateGetDeclaredConstructors (Class.java: 2660)

java.lang.Class.getConstructor0 (Class.java: 3075)

java.lang.Class.newInstance (Class.java: 412)

在sun.reflect.MethodAccessorGenerator 1.美元運行(MethodAccessorGenerator.java: 403)

在sun.reflect.MethodAccessorGenerator 1.美元運行(MethodAccessorGenerator.java: 394)

在java.security.AccessController。doPrivileged(本地方法)

sun.reflect.MethodAccessorGenerator.generate (MethodAccessorGenerator.java: 393)

sun.reflect.MethodAccessorGenerator.generateMethod (MethodAccessorGenerator.java: 75)

在sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java: 53)

sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java: 43)

java.lang.reflect.Method.invoke (Method.java: 498)

sun.reflect.misc.MethodUtil.invoke (MethodUtil.java: 276)

com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn (ConvertingMethod.java: 193)

com.sun.jmx.mbeanserver.ConvertingMethod.invokeWithOpenReturn (ConvertingMethod.java: 175)

com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2 (MXBeanIntrospector.java: 117)

com.sun.jmx.mbeanserver.MXBeanIntrospector.invokeM2 (MXBeanIntrospector.java: 54)

com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM (MBeanIntrospector.java: 237)

com.sun.jmx.mbeanserver.PerInterface.getAttribute (PerInterface.java: 83)

com.sun.jmx.mbeanserver.MBeanSupport.getAttribute (MBeanSupport.java: 206)

javax.management.StandardMBean.getAttribute (StandardMBean.java: 372)

com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute (DefaultMBeanServerInterceptor.java: 647)

com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute (JmxMBeanServer.java: 678)

com.sun.jmx.mbeanserver.MXBeanProxy GetHandler.invoke美元(MXBeanProxy.java: 122)

com.sun.jmx.mbeanserver.MXBeanProxy.invoke (MXBeanProxy.java: 167)

javax.management.MBeanServerInvocationHandler.invoke (MBeanServerInvocationHandler.java: 258)

在com.sun.proxy。Proxy8美元。getMemoryUsed(未知來源)

org.apache.spark.metrics.MBeanExecutorMetricType.getMetricValue (ExecutorMetricType.scala: 67)

org.apache.spark.metrics.SingleValueExecutorMetricType.getMetricValues (ExecutorMetricType.scala: 46)

在org.apache.spark.metrics.SingleValueExecutorMetricType.getMetricValues (ExecutorMetricType.scala: 44美元)

org.apache.spark.metrics.MBeanExecutorMetricType.getMetricValues (ExecutorMetricType.scala: 60)

1接受解決方案

接受的解決方案

sarvesh
貢獻者三世

謝謝你我隻是找到了一個解決辦法,我提到過我的問題,在閱讀我的文件我要做的就是添加這個,

選項(“maxRowsInMemory”, 1000)。

在原帖子查看解決方案

18日回複18

werners1
尊敬的貢獻者三世

我懷疑這是8 MB的文件。

如果你不設置任何內存參數嗎?(用默認值)

sarvesh
貢獻者三世

這是一個8.5 mb xlsx文件與100 k行數據,

我得到同樣的gc開銷限製超過誤差沒有外接程序參數

werners1
尊敬的貢獻者三世

我想的確是一個配置問題引發腳本你似乎不做任何行動(火花是懶惰的評估)。

當你在本地運行火花,JVM無法分配足夠的內存來運行成功。

你能檢查文檔:

https://spark.apache.org/docs/2.4.4/tuning.html garbage-collection-tuning

sarvesh
貢獻者三世

是的我隻是經曆,我明白我需要增加堆空間,但在運行時增加它與intellij並不奏效。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map