1. pyspark讀csv文件后無法顯示中文
#pyspark讀取csv格式時,不能顯示中文 df = spark.read.csv(r"hdfs://mymaster:8020/user/root/data_spark.csv", schema=schema) #解決方法,加入encoding='gbk',即 df = spark.read.csv(r"hdfs://mymaster:8020/user/root/data_spark.csv", schema=schema, encoding='gbk')
2. 查看和修改默認編碼格式
import sys #查看默認編碼格式 print(sys.getdefaultencoding()) #修改編碼格式 sys.setdefaultencoding('utf8')
#參考:https://blog.csdn.net/abc_321a/article/details/81945577
3. pyspark導入spark
原因:python中沒有默認的sparksession,需要導入
#方法 from pyspark import SparkContext from pyspark.sql.session import SparkSession sc = SparkContext('local', 'test') spark = SparkSession(sc) #之后即可以使用spark
#參考:https://blog.csdn.net/zt7524/article/details/98173650
4. Pyspark引入col函數出錯,ImportError: cannot import name 'Col' from 'pyspark.sql.functions'
#有人建議的是,不過我用的時候會報錯 from pyspark.sql.functions import col #后來測試了一種方式可以用 from pyspark.sql import Row, column #也試過另一個參考,不過要更新pyspark包之類的,於是暫時沒有用該方法,也就是安裝pyspark-stubs包:pip install pyspark-stubs #參考:http://isunix.github.io/blog/2019/06/04/pysparkzhong-yin-ru-colhan-shu-de-fang-shi/
#參考:https://stackoverflow.com/questions/40163106/cannot-find-col-function-in-pyspark
#參考:https://pypi.org/project/pyspark-stubs/
5. Exception: Python in worker has different version 2.6 than that in driver 3.7, PySpark cannot run with different minor versions.
#我是在Red hat環境下,裝了兩個python版本,於是報錯 # 解決方案:在環境中加入想用的python版本 import os os.environ["PYSPARK_PYTHON"]="/usr/bin/python3"
#參考:https://blog.csdn.net/wmh13262227870/article/details/77992608
6. 在Red hat上使用pip3 安裝pandas的時候出錯:pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
原因:python 3.7版本會出現這個問題,是因為openssl的版本比較低
方法:必須先升級openssl,然后重新編譯或者安裝python,順序要注意
升級openssl和編譯python可參考:https://www.cnblogs.com/jasonLiu2018/articles/10730605.html
注意:./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl 是先cd到python解壓后的目錄,再使用的,例如解壓目錄是當前目錄的:Python-3.7.0,則先在命令行執行 cd Python-3.7.0,進入該目錄,執行上述./configure代碼,/usr/local/python3是python將要安裝的目錄,/usr/local/openssl是openssl已安裝的目錄;然后直接依次:make, make install重裝python。
升級openssl可參考: