相关文章推荐
近视的橙子  ·  python ...·  16 小时前    · 
安静的包子  ·  flex ...·  3 月前    · 
痴情的啄木鸟  ·  Vue ...·  1 年前    · 
安静的香菇  ·  css 表格最后一行-掘金·  1 年前    · 

如何在spark sql中使用like操作符对python列表中的多个条件构建查询?

0 人关注

我有一个需要使用类似运算符的spark sql查询,比如说。

spark.sql("select * from tbl where name like  '%apple%' ")

现在我有一个长的数值列表

name_list = ['apple', 'orange', 'banana', .......]

我的问题是,我如何从这个长的python列表中建立我的查询。我需要的是像下面这样的一个查询。

spark.sql("select * from tbl where name like '%apple%' or name like '%orange%' or .... ")

python列表很长,而且可能会改变。我当然不想硬编码所有的东西。想知道是否有什么简洁的方法来实现?谢谢!

python
sql
apache-spark
pyspark
apache-spark-sql
zesla
zesla
发布于 2021-12-17
1 个回答
blackbishop
blackbishop
发布于 2021-12-17
已采纳
0 人赞同

你可以使用这样的名字列表建立或条件。

import functools
condition = functools.reduce(
    lambda acc, x: f"{acc} or name like '%{x}%'",
    name_list[1:],