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")