环境准备:
python3.6
jdk1.8
spark-2.3.4-bin-hadoop2.7 Downloads | Apache Spark
# java 安装
mkdir /apps/jdk
tar xvzf jdk-8u251-linux-x64.tar.gz -C /apps/jdk
#spark 安装
mkdir /apps/spark
tar -zxvf spark-2.3.4-bin-hadoop2.7.tgz -C /apps/spark/
#python 安装
mkdir /apps/python3
tar -zxvf Python-3.6.8.tgz -C /apps/python3/
#安装依赖包
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc
cd /apps/python3/Python-3.6.8
./configure --prefix=/usr/local/python3
#编译
make && make install
#软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
#设置环境变量
vim /etc/profile
export JAVA_HOME=/apps/jdk/jdk1.8.0_251/jre
export PYSPARK_PYTHON=python3
export SPARK_HOME=/apps/spark/spark-2.3.4-bin-hadoop2.7
export PATH=$PATH:$JAVA_HOME/bin:$SPARK_HOME/bin
source /etc/profile
测试:
1)输入:java -version,出现下面则成功
2)输入:python3,出现下面则成功
3)输入:spark-shell ,出现下面则成功
4)输入:pyspark ,出现下面则成功
如果上面都没问题就行了,那就表示sapark和pyspark环境搭建完成。
下面开始配置pycharm 远程连接
#将pysark和py4j包拷贝到site-packages下
#切记 不要pip3 install pyspark ,因为这样会造成版本不一致
cd /apps/spark/spark-2.3.4-bin-hadoop2.7/python/lib
unzip py4j-0.10.7-src.zip -d /usr/local/lib/python3.6/site-packages
unzip pyspark.zip -d /usr/local/lib/python3.6/site-packages
打开pycharm,一定要正式版的,不要社区版,社区版不能建立ssh连接,点击tool-deployment-configuration
打开后,点击+号创建一个SFTP
输入相关信息,点击测试连接,出来连接成功 则表示服务可以连接
点击 mapping,在deployment path 输入服务器的代码地址,设置该路径则可以把本地代码提交到服务器上,一般都放在tmp文件夹中,比如:/tmp/pycharm_project_90
点击OK,即可完成操作
点击,选择刚刚配置好的远程服务
等待加载完成后,就可以把本地运行的pyspark代码
from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("test").getOrCreate()
df = spark.read.options(header=True, inferSchema=True, delimiter=',', encoding="utf-8") \
.csv('a.csv')
df.printSchema()
df.show()
现在的代码运行在服务器上的local,不是yarn 也不能指定master是yarn,因为没有Hadoop环境,如果想运行在yarn上则需要配置hadoop的环境