python - 统一码编码错误 : 'ascii' codec can't encode character error

标签 python csv apache-spark unicode pyspark

我正在使用 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/

相关文章:

apache-spark - spark中如何区分操作是转换还是 Action ?

python - 如何使用python将数据框添加到excel中的多个工作表

apache-spark - 触发流无法写入hdfs路径

scala - scala/spark 代码不允许在 hive 中添加列

php - 将 CSV 文件加载到 MYSQL 数据库而不导入行

python - 将 csv 内容写入 .txt 文件,每行一个文件?

csv - Go stdlib 是否具有将 csv 文件读入 []map[string]string 的功能?

python - 如何根据条件过滤掉整个组?

python - 运行关键字/函数的最有效方法是什么?

python - 如何对特征矩阵进行行归一化?广播错误