-
Notifications
You must be signed in to change notification settings - Fork 28.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[SPARK-3971] [MLLib] [PySpark] hotfix: Customized pickler should work in cluster mode #2830
Conversation
Thanks a lot. |
QA tests have started for PR 2830 at commit
|
QA tests have started for PR 2830 at commit
|
QA tests have started for PR 2830 at commit
|
LGTM. Thanks for fixing it! Waiting for Jenkins. |
QA tests have finished for PR 2830 at commit
|
QA tests have finished for PR 2830 at commit
|
Test PASSed. |
QA tests have started for PR 2830 at commit
|
let's wait for the last build to finish. |
QA tests have finished for PR 2830 at commit
|
Test PASSed. |
QA tests have finished for PR 2830 at commit
|
Test FAILed. |
@mengxr The failed case is not related. |
Yes, that's a known flakey test. I've merged this into master. Thanks! |
… in cluster mode Customized pickler should be registered before unpickling, but in executor, there is no way to register the picklers before run the tasks. So, we need to register the picklers in the tasks itself, duplicate the javaToPython() and pythonToJava() in MLlib, call SerDe.initialize() before pickling or unpickling. Author: Davies Liu <davies.liu@gmail.com> Closes #2830 from davies/fix_pickle and squashes the following commits: 0c85fb9 [Davies Liu] revert the privacy change 6b94e15 [Davies Liu] use JavaConverters instead of JavaConversions 0f02050 [Davies Liu] hotfix: Customized pickler does not work in cluster
test this please |
QA tests have started for PR 2830 at commit
|
QA tests have finished for PR 2830 at commit
|
Test PASSed. |
Customized pickler should be registered before unpickling, but in executor, there is no way to register the picklers before run the tasks.
So, we need to register the picklers in the tasks itself, duplicate the javaToPython() and pythonToJava() in MLlib, call SerDe.initialize() before pickling or unpickling.