-
Notifications
You must be signed in to change notification settings - Fork 29k
[SPARK-21045][PYTHON] Allow non-ascii string as an exception message from python execution in Python 2 #25847
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
Changes from 5 commits
90559c0
fb72447
ff7f248
42a9eb0
0652966
ffb4d29
d6ec7ae
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -46,6 +46,7 @@ | |
|
|
||
| if sys.version >= '3': | ||
| basestring = str | ||
| unicode = str | ||
|
||
| else: | ||
| from itertools import imap as map # use iterator map by default | ||
|
|
||
|
|
@@ -598,8 +599,18 @@ def process(): | |
| process() | ||
| except Exception: | ||
| try: | ||
| exc_info = traceback.format_exc() | ||
| if sys.version_info.major < 3: | ||
|
||
| if isinstance(exc_info, unicode): | ||
| exc_info = exc_info.encode("utf-8") | ||
| else: | ||
advancedxy marked this conversation as resolved.
Outdated
Show resolved
Hide resolved
|
||
| # exc_info may contains other encoding bytes, replace the invalid byte and | ||
| # convert it back to utf-8 again | ||
| exc_info = exc_info.decode("utf-8", "replace").encode("utf-8") | ||
| else: | ||
| exc_info = exc_info.encode("utf-8") | ||
| write_int(SpecialLengths.PYTHON_EXCEPTION_THROWN, outfile) | ||
| write_with_length(traceback.format_exc().encode("utf-8"), outfile) | ||
| write_with_length(exc_info, outfile) | ||
| except IOError: | ||
| # JVM close the socket | ||
| pass | ||
|
|
||
Uh oh!
There was an error while loading. Please reload this page.