繁体   English   中英

如何在python中循环列表时动态创建df?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM