1. 环境 : centos,启动pyspark,执行如下python命令:
import pyspark
from pyspark import SparkContext
from pyspark import SparkConf
conf=SparkConf().setAppName("miniProject").setMaster("local[*]")
sc=SparkContext.getOrCreate(conf)
#flatMap() 对RDD中的item执行同一个操作以后得到一个list,然后以平铺的方式把这些list里所有的结果组成新的list
sentencesRDD=sc.parallelize(['Hello world','My name is Patrick'])
wordsRDD=sentencesRDD.flatMap(lambda sentence: sentence.split(" "))
print (wordsRDD.collect())
print (wordsRDD.count())
用root账号没问题:
用非root账号会有此问题如下:_PYSPARK_DRIVER_CONN_INFO_PATH,后台设置下/etc/profile 中环境变量可以了。
vi /etc/profile 加入:
,source /etc/profile
2. 后来在 jupyter notebook远程登录后(非root账号),发现还是有这个问题。(其实就是环境变量没有加载完全。)
解决方法在脚本开头加入:
#jupyter需要初始化pyspark相关环境变量
import findspark
findspark.init()
import os,sys
os.environ['SPARK_HOME'] = "/bin/spark-2.4.0"
sys.path.append("/bin/spark-2.4.0/python")
sys.path.append("/bin/spark-2.4.0/python/lib/py4j-0.10.7-src.zip")