我只能使用动态SQL来完成这项工作。 也许有人聪明有更好的方法?
这是大多数魔术发生的地方:
inStr = " ,".join(["'" + i + "'" for i in input_list])
foo,bar
,则会得到一串
'foo','bar'
。 (我假设您的列是字符串数据类型)。
input_values = dbutils.widgets.get("codes_to_search")
input_list = input_values.split(",")
#build your in list
inStr = " ,".join(["'" + i + "'" for i in input_list])
#now build your full query
qString = "select <cols> from <your table> where <some col> in (" + inStr + ")"
#and run it
spark.sql(qString).show()