在我编写的python程序中,我使用program解析器读取配置。目前,我正在从s3读取文件,但我的要求是程序本身定义的配置,而不是任何其他外部源。编写的代码如下:
config = configparser.ConfigParser()
config.readfp(open(s3:path\config))配置文件格式: config.ini
[section1]
var1=Y
var2=Y
var3=['col1','col2']我正在读取位于s3中的上述文件,但我不想从s3读取,而是想从程序本身读取。要做到这一点,需要做些什么?
上面的代码是用pyspark程序编写的,我正在传递配置文件,并使用submit命令,但是要读取配置文件,我需要提供路径,这是不可取的。在aws emr中提交spark:
'Args': ['spark-submit','--deploy-mode', 'cluster','--master', 'yarn','--executor-memory', conf['emr_step_executor_memory'],'--executor-cores', conf['emr_step_executor_cores'],'--conf','spark.yarn.submit.waitAppCompletion=true','--conf','spark.rpc.message.maxSize=1024',f'{s3_path}/file1.py', '--py-files',f'{s3_path}/file2.py',f'{s3_path}/file3.py',f'{s3_path}/file4.py','--files', f'{s3_path}/config ]由于config.readfp(打开( s3 : path \ config )行),我需要提供s3路径,这是不可取的选项,要么是从submit传递配置文件,然后将其提供给正在读取信任的所有其他python文件,要么在程序内部读取配置。
发布于 2020-12-18 05:52:50
你可以这样做:
parser = configparser.ConfigParser()
parser.read_dict({'section1': {'key1': 'value1',
'key2': 'value2',
'key3': 'value3'},
'section2': {'keyA': 'valueA',
'keyB': 'valueB',
'keyC': 'valueC'},
'section3': {'foo': 'x',
'bar': 'y',
'baz': 'z'}})查看这获取详细信息,以及实现这一目标的其他一些替代方法。
样本检索
parser["section1"]["key1"]
'value1'https://stackoverflow.com/questions/64096449
复制相似问题