gsutil ls -l gs://[bucket-name]/ | sort -k 2
结果是一个具有两列的列表,称为dfname和源路径,需要循环结果列表,并且需要基于dfname值动态创建传递df名称。
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
基于df名称需要创建dfnames吗?
预期输出 Account_Df和ProdMet_Df两个单独的df。
答案 0 :(得分:0)
如果绝对确定需要执行此操作,则可以更新globals()
字典以在全局(模块)名称空间中创建变量。最后一行代码应该是:
globals()[x[0]] = create_df(src, header=True)