Ich versuche ein PySpark Pipeline
Objekt zu serialisieren, so dass es später gespeichert und abgerufen werden kann. Versucht, die Python-Beiz-Bibliothek sowie die PickleSerializer
von PySpark zu verwenden, schlägt der dumps()
Aufruf selbst fehl.Wie wird ein pyspark-Pipeline-Objekt serialisiert?
Bereitstellung des Code-Snippets bei Verwendung der nativen pickle
-Bibliothek.
pipeline = Pipeline(stages=[tokenizer, hashingTF, lr])
with open ('myfile', 'wb') as f:
pickle.dump(pipeline,f,2)
with open ('myfile', 'rb') as f:
pipeline1 = pickle.load(f)
gibt es die folgenden Fehler beim Laufen:
py4j.protocol.Py4JError: An error occurred while calling o32.__getnewargs__. Trace:
py4j.Py4JException: Method __getnewargs__([]) does not exist
at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:335)
at py4j.reflection.ReflectionEngine.getMethod(ReflectionEngine.java:344)
at py4j.Gateway.invoke(Gateway.java:252)
at py4j.commands.AbstractCommand.invokeMethod(AbstractCommand.java:133)
at py4j.commands.CallCommand.execute(CallCommand.java:79)
at py4j.GatewayConnection.run(GatewayConnection.java:209)
at java.lang.Thread.run(Thread.java:785)
Ist es möglich, PySpark Pipeline
Objekte zu serialisieren?
Das funktioniert, wenn ich versuche, mit einem leeren Pipeline-Objekt zu arbeiten - pickle.dumps (Pipeline (stages = [])), aber wenn ich versuche, ein Pipeline-Objekt mit Stufen zu beizen, schlägt es noch fehl. Ich habe das von Ihnen vorgeschlagene Methodenformat versucht, aber wenn ich pickle.dumps (make_pipeline()) versuche, schlägt es immer noch mit dem gleichen Fehler fehl. –
Und ich werde :) Werfen Sie einen Blick auf meinen Code 'pickle.dumps (make_pipeline)' und Ihre 'pickle.dumps (make_pipeline)'. Ich beize nur ein Objekt, das verwendet werden kann, um Pipeline, keine Pipeline selbst zu erzeugen. – zero323