您的位置:首页 > 编程语言 > Python开发

python运行spark脚本程序

2017-06-14 00:00 323 查看
两种方法:

使用 spark-submit 解释执行python脚本
使用 python 解释执行python脚本
1. 使用Spark-submit解释执行python脚本

python脚本中需要在开头导入spark相关模块,调用时使用spark-submit提交,示例代码如下:

"""odflow.py"""
from pyspark import SparkContext

fileDir = "/TripChain3_Demo.txt"
# sc = SparkContext("local", "ODFlow")
sc = SparkContext("spark://ITS-Hadoop10:7077", "ODFlow")
lines = sc.textFile(fileDir)

# python不能直接写多行的lambda表达式,所以要封装在函数中
def toKV(line):
arr = line.split(",")
t = arr[5].split(" ")[1].split(":")
return (t[0]+t[1]+","+arr[11]+","+arr[18],1)

r1 = lines.map( lambda line : toKV(line) ).reduceByKey(lambda a,b: a+b)
# 排序并且存入一个(repartition)文件中
r1.sortByKey(False).saveAsTextFile("/pythontest/output")

发布命令为:

spark-submit \
--master spark://ITS-Hadoop10:7077 \
odflow.py

2. 使用 python 解释执行python脚本

直接用python执行会出现错误:

ImportError: No module named pyspark
ImportError: No module named py4j.java_gateway

缺少pyspark和py4j这两个模块,这两个包在Spark的安装目录里,需要在环境变量里定义PYTHONPATH,编辑~/.bashrc或者/etc/profile文件均可

vi ~/.bashrc # 或者 sudo vi /etc/profile
# 添加下面这一行
export PYTHONPATH=$SPARK_HOME/python/:$SPARK_HOME/python/lib/py4j-0.8.2.1-src.zip:$PYTHONPATH
# 使其生效
source ~/.bashrc # 或者 sudo source /etc/profile

然后关闭终端,重新打开,用python执行即可

python odflow.py
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  pyspark