我有需要使用 like 運算子的 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 串列很長,可以更改。我當然不想硬編碼一切。想知道是否有任何簡潔的方法來實作這一目標?謝謝!
uj5u.com熱心網友回復:
您可以使用如下名稱串列構建 or 條件:
import functools
condition = functools.reduce(
lambda acc, x: f"{acc} or name like '%{x}%'",
name_list[1:],
f"name like '%{name_list[0]}%'"
)
spark.sql(f"select * from tbl where {condition}")
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/383919.html
