Closed trevery closed 4 years ago
感谢反馈,确实应该是编码问题。
我查看了下官方文档,https://spark.apache.org/docs/2.1.0/api/python/pyspark.html:
你可以尝试,设置use_unicode=False
:
sc.textFile(answers_filePath, use_unicode=False)
如果没有解决,我明天会再跟进下这个问题。
该问题已经解决。
export LC_ALL="en_US.UTF-8
vim /home/hadoop/.zshrc
在最后一行添加
export LC_ALL="en_US.UTF-8"
查看是否添加成功
➜ ~ tail /home/hadoop/.zshrc
# Spark environment
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export HADOOP_HOME=/usr/local/hadoop
export SPARK_HOME=/usr/local/spark
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.7-src.zip:$PYTHONPATH
export PYSPARK_PYTHON=python3
export PATH=$HADOOP_HOME/bin:$SPARK_HOME/bin:$PATH
# zh_CN.UTF-8 setting
export LC_ALL="zh_CN.UTF-8"
看到最后一行添加成功后。重载配置
source /home/hadoop/.zshrc
➜ ~ locale
LANG=zh_CN.UTF-8
LC_CTYPE="zh_CN.UTF-8"
LC_NUMERIC="zh_CN.UTF-8"
LC_TIME="zh_CN.UTF-8"
LC_COLLATE="zh_CN.UTF-8"
LC_MONETARY="zh_CN.UTF-8"
LC_MESSAGES="zh_CN.UTF-8"
LC_PAPER="zh_CN.UTF-8"
LC_NAME="zh_CN.UTF-8"
LC_ADDRESS="zh_CN.UTF-8"
LC_TELEPHONE="zh_CN.UTF-8"
LC_MEASUREMENT="zh_CN.UTF-8"
LC_IDENTIFICATION="zh_CN.UTF-8"
LC_ALL=zh_CN.UTF-8
尝试创建一个中文文件目录
➜ ~ mkdir 大数据
➜ ~ ls
Desktop Experiment Pictures spark-3.0.1-bin-without-hadoop.tgz VNC-Server-6.7.2-Linux-x64.rpm
Documents hadoop-2.8.5.tar.gz Public Templates 大数据
Downloads Music scala-2.13.3.tgz Videos
如果不出意外,pyspak中应该可以正常查看中文了。该问题pyspak配置没有问题,问题在于终端无法显示中文输出。
实验2中 answersRdd.take(10) 输出乱码
环境:CentOS 英文环境
分析应该是编码问题。
已经尝试过的解决方案:
pyspark相关环境:
查看文件编码
两者编码都是utf-8格式。
使用该文件加载到spark中,依然乱码。说明不是该问题。
LANG="zh_CN.UTF-8" LANGUAGE="zh_CN.UTF-8:zh_CN.UTF-8:zh_CN" SUPPORTED="zh_CN.UTF-8:zh_CN:zh:en_US.UTF-8:en_US:en" SYSFONT="lat0-sun16"