繁体   English   中英

在 SPARK SQL 中参数化 Where 子句

[英]Parameterise a Where clause in SPARK SQL

如何参数化包含具有可变数量参数的 IN 子句的查询,例如这个?

SELECT * FROM Tags 
WHERE ID IN ('01',
        '02',
        '03',
        '04',
        '05',
        '15',
        '16',
        '20',
        '21',
        '22',
        '24',
        '25',
        '27',
        '31',
        '34',
        '43',
        '53',
        '57',
        '60',
        '61',
        '68',
        '70',
        '80',
        '85',
        'A8',
        'A9',
        'B1',
        'B2',
        'B3',
        'B4')

在 SQL (Sql server) 中它是创建一个表值参数如何在 SPark SQL 中实现这一点? 或者有什么方法可以将 where 条件值作为 pyspark 函数输出?

从手册( Manual ):

>>> df[df.name.isin("Bob", "Mike")].collect()
[Row(age=5, name='Bob')]
>>>df[df.age.isin([1, 2, 3])].collect()
[Row(age=2, name='Alice')]

因此...

tags = ['01', '02', ... 'B4']
df[ df.id.isin(tags) ].collect()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM