spark 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')
Эта работа работает толькопотому что я локально вытягиваю сценарий depen2.py с from depen2 import say_hi
, однако я не думаю, что так оно и должно работать.Если я закомментирую оператор before from
, он выдаст ошибку.Я хочу иметь возможность передать сценарий через --py-files
, а затем использовать его в коде искры.
Как использовать код, который перетаскивается в контекст искры с помощью addPyFile
?spark.say_hi()
не похоже на работу.