繁体   English   中英

UnicodeEncodeError:'ascii'编解码器无法编码字符错误

[英]UnicodeEncodeError: 'ascii' codec can't encode character error

我正在使用python从谷歌云存储中读取一些文件

spark = SparkSession.builder.appName('aggs').getOrCreate()

df = spark.read.option("sep","\t").option("encoding", "UTF-8").csv('gs://path/', inferSchema=True, header=True,encoding='utf-8')
df.count()
df.show(10)

但是,我一直收到一个抱怨df.show(10)行的错误:

df.show(10)
File "/usr/lib/spark/python/lib/pyspark.zip/pyspark/sql/dataframe.py", line 
350, in show
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufffd' in position 162: ordinal not in range(128)

我用spark.read.option搜索,发现这似乎是一个常见的错误,解决方案应该在"UTF-8"的编码中添加到spark.read.option ,就像我已经做的那样。 由于这没有帮助,我仍然得到这个错误,专家能帮忙吗? 提前致谢。

如何在运行Spark作业之前导出PYTHONIOENCODING

export PYTHONIOENCODING=utf8

对于Python 3.7+ ,以下应该也可以做到:

sys.stdout.reconfigure(encoding='utf-8')

对于Python 2.x,您可以使用以下内容:

import sys
reload(sys)
sys.setdefaultencoding('utf-8')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM