2017-12-27 22 views
0

존재하지 않습니다py4j.Py4JException : 방법 분할 ([]) 내 스파크 작업을 실행할 때 나는 다음과 같은 오류가

points = df.rdd.map(lambda x: ((x['col1'], x['col2'], x['col3']), x[i + '_func'])) 
points.cache() 
dim = points.first()[1].size 
print points._jrdd.splits().size() 

마지막 행 예외 :

py4j.protocol.Py4JError: An error occurred while calling o191.splits. Trace: 
py4j.Py4JException: Method splits([]) does not exist 
     at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:318) 
     at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:326) 
     at py4j.Gateway.invoke(Gateway.java:272) 
     at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:132) 
     at py4j.commands.CallCommand.execute(CallCommand.java:79) 
     at py4j.GatewayConnection.run(GatewayConnection.java:214) 
     at java.lang.Thread.run(Thread.java:748) 

이 내 코드입니다 위의 예외 조항. 이 오류를 어떻게 해결할 수 있습니까? 이 코드는 Spark 1.6에서 잘 작동합니다. 이제는 Spark 2.2에서 작업 중이며이 오류가 발생합니다. 파이썬의 버전은 2.7.12입니다 (이전과 동일).

답변

1

splits (Java에서)은 1.1.0 이후로 대체되어 (partitions으로 대체되었습니다.) PySpark에서 사용해서는 안됩니다. 사용 getNumPartitions

points.getNumPartitions()