我正在使用 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)
我谷歌了一下,发现这似乎是一个常见的错误,解决方案应该在 "UTF-8"
的编码中添加到 spark.read.option
,就像我已经做过的那样。由于这没有帮助,我仍然收到此错误,请专家帮忙?提前致谢。
最佳答案
导出怎么样PYTHONIOENCODING
在运行您的 Spark 作业之前:
export PYTHONIOENCODING=utf8
对于 Python 3.7+,以下内容也可以解决问题:
sys.stdout.reconfigure(encoding='utf-8')
对于 Python 2.x,您可以使用以下内容:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
关于python - 统一码编码错误 : 'ascii' codec can't encode character error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57222206/