概述
使用spark.read.csv将带有外来字符(åäö)的数据框加载到Spark中,并使用encoding =’utf-8’并尝试执行简单的show().
>>> df.show()
Traceback (most recent call last):
File "
sql/dataframe.py",line 287,in show
print(self._jdf.showString(n,truncate))
UnicodeEncodeError: 'ascii' codec can't encode character u'\ufffd' in position 579: ordinal not in range(128)
我认为这可能与Python本身有关但我无法理解here for example中提到的任何技巧如何应用于PySpark和show() – 函数的上下文中.
export PYTHONIOENCODING=utf8
在跑pyspark之前.我想知道为什么以上工作,因为即使没有它,sys.getdefaultencoding()也为我返回了utf-8.
How to set sys.stdout encoding in Python 3?还谈到了这一点,并为Python 3提供了以下解决方案:
import sys
sys.stdout = open(sys.stdout.fileno(),mode='w',encoding='utf8',buffering=1)
总结
以上是编程之家为你收集整理的python – PySpark – UnicodeEncodeError:’ascii’编解码器不能编码字符全部内容,希望文章能够帮你解决python – PySpark – UnicodeEncodeError:’ascii’编解码器不能编码字符所遇到的程序开发问题。
如果您也喜欢它,动动您的小指点个赞吧