将日期列表传递给 PySpark 中的 SQL WHERE 语句
Pass list of dates to SQL WHERE statement in PySpark
在将一些 SAS 代码转换为 PySpark 的过程中,我们之前在此代码中的 where 语句中使用了一个宏变量。在适应 PySpark 时,我试图将日期列表传递给 where 语句,但我不断收到错误。我想要 SQL 代码从这 3 个月中提取所有数据。有什么指点吗?
month_list = ['202107', '202108', '202109']
sql_query = """ (SELECT *
FROM Table_Blah
WHERE (to_char(DateVariable,'yyyymm') IN '{}')
) as table1""".format(month_list)
将列表作为元组传递以获得正确的 sql 语法:
month_list = ['202107', '202108', '202109']
sql_query = """ (SELECT *
FROM Table_Blah
WHERE (to_char(DateVariable,'yyyymm') IN {})
) as table1""".format(tuple(month_list))
而且您不需要在语句中使用撇号
在将一些 SAS 代码转换为 PySpark 的过程中,我们之前在此代码中的 where 语句中使用了一个宏变量。在适应 PySpark 时,我试图将日期列表传递给 where 语句,但我不断收到错误。我想要 SQL 代码从这 3 个月中提取所有数据。有什么指点吗?
month_list = ['202107', '202108', '202109']
sql_query = """ (SELECT *
FROM Table_Blah
WHERE (to_char(DateVariable,'yyyymm') IN '{}')
) as table1""".format(month_list)
将列表作为元组传递以获得正确的 sql 语法:
month_list = ['202107', '202108', '202109']
sql_query = """ (SELECT *
FROM Table_Blah
WHERE (to_char(DateVariable,'yyyymm') IN {})
) as table1""".format(tuple(month_list))
而且您不需要在语句中使用撇号