Динамическое построение синтаксиса Pyspark - PullRequest
0 голосов
/ 14 февраля 2020

У нас есть требование, в котором нам нужно сохранить правила операций ETL в базе данных mysql и выполнить задание склеивания AWS на основе правил, закодированных в Pyspark.

мы собираемся сохранить фактические Синтаксис Pysaprk в таблице правил в виде строки, как показано ниже.

s.no | rule | output

1 | df1.join (df2, on = ['age'], how = 'right_outer') | df3

2 | df3.join (df4, on = ['age'], how = 'right_outer') | df5

3 | df5.join (df6, on = ['age'], how = 'right_outer' ) | df7

мы собираемся извлечь это из БД и сохранить его как DF.

Для i в DF:

i.output = i.rule

# после подстановки значения, которое выглядит следующим образом (df3 = df1.join (df2, on = ['age'], how = 'right_outer'))

Но операция объединения не происходит. Так как значения хранятся в виде строки в БД, они просто подставляют значения.

Пожалуйста, помогите мне здесь, что нужно изменить для выполнения операций соединения. Мне нужно изменить тип данных?

Большое спасибо заранее.

1 Ответ

0 голосов
/ 14 февраля 2020

Можете ли вы попробовать это:

df_all = df1.join(df2, on=['age'], how='right_outer')\
            .join(df3, on=['age'], how='right_outer')\
            .join(df4, on=['age'], how='right_outer')

df_all.show()

Best,

...