2017-12-27 5 views
0

ich folgende Fehlermeldung erhalten, wenn mein Funken Job ausführen:py4j.Py4JException: Methode Splits ([]) ist nicht vorhanden

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) 

Dies ist mein Code:

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() 

Die letzte Zeile wirft die oben angegebene Ausnahme. Wie kann ich diesen Fehler beheben? Dieser Code funktionierte gut in Spark 1.6. Jetzt arbeite ich mit Spark 2.2 und bekomme diesen Fehler. Die Version von Python ist 2.7.12 (die gleiche wie zuvor).

Antwort

1

splits in Java sind seit 1.1.0 veraltet (ersetzt durch partitions) und sollten in PySpark überhaupt nicht verwendet werden. Verwenden Sie getNumPartitions

points.getNumPartitions() 
Verwandte Themen