[英]How to create df dynamically while looping list in python?
def create_df(src,header=None):
df =spark.read.csv(src, header=header)
return df
result = source_df.filter(f.col('Job_name') == job_name).select(source_df['dfname'],source_df['srcpath']).collect()
for x in result:
src=str('"' +x[1] + '"'.strip(' '))
src = str(src)
x[0] = create_df(src, header=True) //throwing an uft-8 encod
结果是一个具有两列的列表,称为dfname和源路径,需要循环结果列表,并且需要基于dfname值动态创建传递df名称。
| dfname | SPath |
|------------+--------------|
| Account_Df | s3://path... |
| ProdMet_Df | s3://path... |
需要根据df名称创建dfnames吗?
预期输出Account_Df和ProdMet_Df两个单独的df。
如果绝对确定需要执行此操作,则可以更新globals()
字典以在全局(模块)名称空间中创建变量。 您的最后一行代码应为:
globals()[x[0]] = create_df(src, header=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.