火花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()
似乎无效。