pyspark的环境配置

spark下载地址

spark

spark包下载并解压后,进入解压的spark文件夹下的bin文件,并执行./spark-shell,若出现以下界面,则表示spark配置ok了。

spark环境配置

配置SPARK_HOME环境变量。
打开 ~/.bash_profile文件,配置SPARK_HOME以及PATH

export SPARK_HOME=/usr/local/spark/spark
PATH="${SPARK_HOME}/bin:${PATH}"
export PATH

配置好后,直接打开终端,输入spark-shell,若出现图一的界面,则表示环境变量配置OK。

pyspark 环境配置

pyspark 是spark提供的python环境的api,想要在python脚本中使用pyspark,则需要加载pyspark的配置信息。

  1. 本机环境配置
    若在运行时报错此类错误:import-error:Unable to import 'pyspark',则一般是没有配置pythonpath的环境配置。
    解决方法:
  • 在配置文件中添加PYTHONPATH的路径。
    打开~/.bash_profile 文件,配置PYTHONPATH
    export SPARK_HOME=/usr/local/spark/spark
    PATH="${SPARK_HOME}/bin:${PATH}"
    PYTHONPATH="${SPARK_HOME}/python:${SPARK_HOME}/python/lib/py4j-0.10.7-src.zip"
    export PYTHONPATH
    
    其中主要是添加${SPARK_HOME}/python/lib/py4j-0.10.7-src.zip和${SPARK_HOME}/python这两个python包路径。
  • 在脚本中动态加载
    import os,sys
    spark_name = os.environ.get('SPARK_HOME', None)
    if not spark_name:
    	raise ValueError('spark环境没有配置好')
    
    sys.path.insert(0, os.path.join(spark_name, 'python'))
    sys.path.insert(0, os.path.join(spark_name, 'python/lib/py4j-0.10.7-src.zip'))
    
    在脚本中通过sys.path进行动态设置pyspark的依赖包到python的path中。
  1. 集群环境配置
    在yarn环境下运行脚本,若提示:
    Caused by: org.apache.spark.SparkException: Error from python worker: /usr/bin/python: No module named pyspark
    此类的错误,则一般是yarn集群的机器中未配置pyspark的环境配置,可以通过在脚本中添加依赖包的方式进行包上传,然后在脚本中添加环境配置的方式:
  • 脚本中添加spark配置:sparkSession.conf.set('spark.yarn.dist.files','file:/usr/local/spark/spark-2.4.5-bin-hadoop2.7/python/lib/pyspark.zip,file:/usr/local/spark/spark-2.4.5-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip')
  • 脚本添加执行器的环境配置:conf.setExecutorEnv('PYTHONPATH','pyspark.zip:py4j-0.10.7-src.zip')
    其中spark.yarn.dist.files表示yarn集群需要的资源文件,此命令会把本地的包路径(必须是绝对路径)下的文件打包上传到executor执行器中,第二个配置则为yarn集群中的executor机器配置pythonpath的环境配置,从而解决module not found的问题。

你可能感兴趣的:(大数据)