pyspark操作示例

前置

pip install pyspark

为了支持py4j的使用,需要进行如下设置,并修改了java_gateway.py中的

env['_PYSPARK_DRIVER_CALLBACK_HOST'] ='127.0.0.1'  PYSPARK_GATEWAY_PORT

错误排查

不能够链接到java GateWay对应的ip及端口

通过netstat -nlp | grep  端口 看到pid  ;

根据ps -aux | grep pid 看到进程启动详情 ;

telnet IP  port 127.0.0.1 网络不通

脚本的开始处加入如下变量

os.environ['SPARK_HOME']=XXXX

os.environ['_PYSPARK_DRIVER_CONN_INFO_PATH']='/tmp/pyspark'

sys.path.append("./spark-2.4.2-bin-hadoop2.7/python")

sys.path.append("./spark-2.4.2-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip")

直接通过命令行运行pyspark(默认会初始化一个spark)

跳转$PARK_HOME 执行命令./bin/pyspark < spark_hdfs.py  spark_hdfs.py为待运行的py文件

最后带cache与不带cache还是有区别带cache的耗时更少,开启cache的代码如下

sc.textFile("file://{}/cnsa_news.txt".format(current_dir)).cache() 

Pyspark部分语法

flatMap会先执行map的操作,再将所有对象合并为一个对象

注意

text文件加载的时候

加载hdfs上面的文件:sc.textFile('hdfs://hadoop:9000/tmp/src.txt')     

加载本地文件:sc.textFile('file:///tmp/src.txt')      # 3条斜杠

异常终止正在运行的pyspark上的job,可能会生成__jb_old__文件,无法删除,需借助unclock工具并重启电脑

你可能感兴趣的:(pyspark操作示例)