我在pyspark中有一个项目,我实现了ConfigParser
来加载config.properties
文件中的一些设置。
在本地,它工作正常,到目前为止没有任何问题......
但是在群集上它会抛出没有部分错误。
我抓取互联网并找到了一些解决方案,即向--files
spark-submit
参数提供属性文件
我使用' SparkFiles.get(' file')'来获取文件路径。像这样:
config = ConfigParser.SafeConfigParser(os.environ)
config.read(SparkFiles.get('file'))
但是当我使用config.get("SECTION","name")
访问函数中的变量时,它会抛出No Section错误。
这是代码流程。
在main.py
我初始化SparkContext
。
然后使用import语句我导入Utility.py
在顶部我执行此操作:
config = ConfigParser.SafeConfigParser(os.environ)
config.read(SparkFiles.get('file'))
然后在接下来我调用来自Utility.py
的函数,我尝试访问config.get("SECTION","name")
。出现错误。
答案 0 :(得分:0)
不要将属性文件读取为config.read(SparkFiles.get(' file'))如果你在--files中传递文件而spark提交你的工作将得到它文件名本身。
尝试阅读config.read(' file')。它适用于我的纱线客户端模式