1. 预备操作
已经有的环境包括:
- spark 2.4.5 集群
- anaconda
- 虚拟环境python3.7 (由于集群spark环境为2.4.5,python版本必须<3.8)
- 配置好$SPARK_HOME、$JAVA_HOME 环境变量
2. 本次操作
命令行操作:
# 查看并进入相应虚拟环境
conda info --envs
conda deactivate
conda activate caret
# 进入相应虚拟环境后,安装包
conda search pyspark #确认是否有相应版本
pip --default-timeout=100 install pyspark==2.4.5 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip --default-timeout=100 install findspark
pip show pyspark
pip install py4j
# 在~/.bashrc中加入以下
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib/py4j-0.10.7-src.zip:$PYTHONPATH
export PYSPARK_PYTHON=python3 #使用python3,这里用的是虚拟环境中的python3
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS="notebook --ip=10.18.3.11 --no-browser --allow-root"
重新开启一个进程:
nohup jupyter-notebook --no-browser --ip=10.18.3.11 --port 8925 > jupyter.file 2>&1 &
在打开的jupyter中验证是否能连上集群:
这里提供2种方式:
# (1)用yarn模式
import findspark
findspark.init()
from pyspark import SparkContext
sc = SparkContext("yarn-client", "First App")
# (2)从表里读个数
from pyspark.sql import SparkSession
spark = SparkSession.builder.master("yarn").enableHiveSupport().appName("Correlation").getOrCreate()
#日志输出级别
spark.sparkContext.setLogLevel("Error")
#读取hive
one_day_ago='20220507'
data = spark.sql(""" SELECT * FROM temp_exp20220620_tao_gmm_user_{}""".format(one_day_ago))