最新的spark支持python的什么版本

如题所述

  两种方法:
  使用 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
温馨提示:答案为网友推荐,仅供参考
相似回答