2017-10-16 7 views
1

거대한 데이터 프레임 (5 백만 행)이 있고 각 행은 항목 모음이며 빈번한 항목 집합 및 연결 규칙을 얻으려고합니다. 하지만 그것은 StackOverflowErrors를주었습니다. 체크 포인트 디렉토리를 설정하려고 시도했지만 문제가 해결되지 않았습니다. 어떤 생각이 어떻게 해결할 수 있습니까? 미리 감사드립니다Pyspark - fpgrowth - 연관 규칙 - StackOverflow 오류

fpGrowth = FPGrowth(itemsCol="ARFeatures", minSupport=0.8, minConfidence=0.9) 

model = fpGrowth.fit(completeDf) 

java.lang.reflect.InvocationTargetException에서 java.lang.StackOverflowError의 . (InvocationTargetException.java:72) sun.reflect.GeneratedMethodAccessor14.invoke에서 (알 수없는 소스) 에 많은 (ObjectStreamClass.java:1028) 에있는 의 (java.util.Method.invoke에서 ) java.io.ObjectOutputStream.writeSerialData (ObjectOutputStream.java:1496)에서 java.io.ObjectOutputStream.writeOrdinaryObject (ObjectOutputStream.java:1432) at java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1178) at java.io.ObjectOutputStream.defaultWriteFields (ObjectOutputStream.java:1548) at java .io.ObjectOutputStream.writeSerialData (ObjectOutputStream.java:1509) at java.io.ObjectOutputStream.writeOrdinaryObject (ObjectOutputStream.java:1432) at java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1178) at java.io .ObjectOutputStream.writeObject (ObjectOutputStream.java:348) scala.collection.mutable.HashMap $$ anonfun $ writeObject $ 1.apply (HashMap.scala : 138) (scala.collection.mutable.HashMap $$ anonfun $ writeObject $ 1)의 .apply (HashMap.scala : 136) 에서 scala.collection.mutable.HashTable $ class.foreachEntry (HashTable.scala : 230) scala.collection.mutable.HashTable $ class에 scala.collection.mutable.HashMap.foreachEntry (HashMap.scala : 40) 에 있습니다. sun.reflect에서 scala.collection.mutable.HashMap.serializeTo (HashMap.scala : 40) (scalach.collection.mutable.HashMap.writeObject (HashMap.scala : 136) )의 serializeTo (HashTable.scala : 125) GeneratedMethodAccessor14.invoke (알 수없는 소스) sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)에서 java.lang.reflect.Method.invoke (Method.java:498)에서 java.io.ObjectStreamClass.invokeWriteObject에서 (ObjectStreamClass.java:1028) at java.io.ObjectOutputStream.writeSerialData (Objec tOutputStream.java:1496) java.io.ObjectOutputStream.defaultWriteFields에서 java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java:1178) 에서 java.io.ObjectOutputStream.writeOrdinaryObject (ObjectOutputStream.java:1432) 에서 (ObjectOutputStream에. java : 1548) at java.io.ObjectOutputStream.writeSerialData (ObjectOutputStream.java:1509) at java.io.ObjectOutputStream.writeOrdinaryObject (ObjectOutputStream.java:1432) at java.io.ObjectOutputStream.writeObject0 (ObjectOutputStream.java : 1178) at java.io.ObjectOutputStream.writeObject (ObjectOutputStream.java:348) scala.collection.mutable.HashMap $$ anonfun $ writeObject $ 1.apply (HashMap.scala : 138)

+0

FPGrowth의 내부 구조에 대해서는 알지 못하지만 스택 크기를 늘려 보았습니까? (JVM 옵션 -Xss) – Traian

+0

spark-submit에 대한 명령 줄 인수 중 하나입니까? – soulless

답변

0

드라이버 스택 크기를 늘리십시오. 그것은 당신이 응용 프로그램을 어떻게 실행하는지에 달려 있습니다. 드라이버 JVM 옵션을 올바르게 전달해야합니다.

당신이 cmd를 줄 인자로 추가 할 수 있습니다 스파크 제출의 경우 :

--conf "spark.driver.extraJavaOptions=-Xss10m" 

은 자세한 내용은 다음을 살펴보십시오 :

+0

"spark.driver.extraJavaOptions = -Xss10m"은 저에게 효과적입니다. – soulless