我是新来的火花。目前我正在尝试使用Pyspark提取Facebook API数据。我正在调用的主文件中创建sparkcontext。我在文件夹中有多个.py文件,当我执行spark提交主程序时,所有这些文件都被执行。
当程序转到其他.py文件时,我想检查我创建的sparkcontext是否存在。如果是,我想使用sparkcontext来执行other.py文件。任何人都可以帮助我这样做。如果我错在哪里。请提出最好的建议。
示例:这不是我的整个代码只显示我的小代码问题
# Calling file name: main_file.py
def fb_calling():
import file2
file2.fb_generaldata()
f __name__ == "__main__":
conf = SparkConf()
conf.setAppName('fb_sapp')
conf.setMaster('yarn-client')
sc = SparkContext(conf=conf)
fb_calling()
# File:file2.py
def fb_generaldata():
sc.parallelize('path')
我的问题是我想使用在main_file.py中创建的sparkcontext来在file2.py中使用 你能说出这是怎么可能的。如果我在错误的轨道上,你能指导我吗?我是全新的火花。 谢谢你的帮助
答案 0 :(得分:1)
您可以将sparkContex作为参数传递给file2.py中的函数,就像这个
一样# File:file2.py
def fb_generaldata(sc):
sc.parallelize('path')
# main_file.py
import file2
if __name__ == "__main__":
conf = SparkConf()
conf.setAppName('fb_sapp')
conf.setMaster('yarn-client')
sc = SparkContext(conf=conf)
file2.fb_generaldata(sc)
根据您的运行方式,您可能需要在导入之前将文件发送给您的工作人员,您可以使用sc.addPyFile("file2.py")
或使用spark-submit命令中的py-files
参数执行此操作。< / p>