Как создать df динамически при зацикливании списка в python? - PullRequest
0 голосов
/ 16 января 2019
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

result - это список, содержащий 2 столбца с именем dfname и исходным путем, необходимо зацикливать список результатов и на основе значения dfname необходимо динамически создавать pass df name.

| dfname     | SPath        |
|------------+--------------|
| Account_Df | s3://path... |
| ProdMet_Df | s3://path... |

На основании имени df нужно создавать имена df?

ожидаемый результат Account_Df и ProdMet_Df две отдельные DFS.

1 Ответ

0 голосов
/ 16 января 2019

Если вы абсолютно уверены, что вам нужно это сделать, вы можете обновить словарь globals(), чтобы создать переменную в глобальном (модульном) пространстве имен. Ваша последняя строка кода должна быть:

    globals()[x[0]] = create_df(src, header=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...