簡體   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