动态构建Pyspark sytax

动态构建Pyspark sytax,pyspark,pyspark-sql,pyspark-dataframes,Pyspark,Pyspark Sql,Pyspark Dataframes,我们需要在mysql数据库中保存ETL操作规则,并根据Pyspark中编码的规则运行AWS粘合作业 我们将把规则表中实际的Pysaprk语法保存为字符串,如下所示 s、 无|规则|输出 1 | df1.join(df2,on=['age'],how='right'u outer')| df3 2 | df3.join(df4,on=['age'],how='right'u outer')| df5 3 | df5.join(df6,on=['age'],how='right'u outer')|

我们需要在mysql数据库中保存ETL操作规则,并根据Pyspark中编码的规则运行AWS粘合作业

我们将把规则表中实际的Pysaprk语法保存为字符串,如下所示

s、 无|规则|输出

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

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

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

我们将从DB中提取它并将其存储为DF

对于DF中的i:

i、 输出=i.规则

#替换后的值看起来像(df3=df1.join(df2,on=['age'],how='right\u outer'))

但是连接操作没有发生。由于这些值在数据库中存储为字符串,因此只需替换这些值

请在此帮助我执行联接操作需要更改哪些内容。我需要更改数据类型吗

非常感谢

你能试试这个吗:

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()
最好的