Spark 2.0:如何在脚本中使用py文件

时间:2018-09-20 22:00:41

标签: apache-spark pyspark spark-submit

火花2.1, python 2.6

如何将文件传递给py文件,并在spark作业中使用它。我有一份看起来像这样的工作

from pyspark import SparkContext, SparkConf
from pyspark.sql import SparkSession
import argparse

from depen2 import say_hi

def main(args,spark):
    say_hi()

if __name__ == '__main__':

   spark = SparkSession.builder.enableHiveSupport()\
             .config("hive.exec.dynamic.partition", "true")\
             .config("hive.exec.dynamic.partition.mode", "nonstrict")\
             .getOrCreate()
   spark.sparkContext.addPyFile("depen2.py")
   parser = argparse.ArgumentParser(description='test job')
   args = vars(parser.parse_args())
   main(args,spark)

然后我这样称呼它:

spark-submit --py-files depen2.py spark-test.py

depen2.py

def say_hi():
   print('hi')

该工作仅能进行,因为我在本地使用from depen2 import say_hi来加载脚本depen2.py,但是我不认为这应该是这样。如果我注释掉from之前的语句,则会出错。我希望能够通过--py-files传递脚本,然后在 火花代码。

如何使用addPyFile提取到spark上下文中的代码? spark.say_hi()似乎无效。

0 个答案:

没有答案