Я довольно новичок в ульях и искрах, но то, что я хочу сделать, кажется, должно быть простым. По сути, я хочу взять список из Python, а затем извлекать только записи из улья, у которых есть ключ в этом списке. Так:
my_list=['a','b','c','d']
new_dataset =
spark.sql(
select *
from hive_dataset
where variable_name in my_list)
Я был бы даже в порядке, если бы обработал его после оператора sql. Так:
my_list=['a','b','c','d']
new_dataset =
spark.sql(
select *
from hive_dataset)
new_dataset=new_dataset(new_dataset[variable_name] in my_list)
Я знаю, что это довольно общий вопрос, но как мне это сделать? Это вообще возможно?
Возможный дубликат Фильтрация Pyspark DataFrame с SQL-подобным предложением IN
Возможный дубликат stackoverflow.com/questions/55288734/…. Я обновил свой ответ для подхода на основе DF и sql.






Это должно работать -
my_list=['a','b','c','d']
your_filter = ','.join(["'" +i + "'" for i in my_list])
new_dataset = spark.sql("SELECT * FROM hive_dataset WHERE variable_name IN ({})".format(your_filter))
Для второго метода вы можете использовать
isin:new_dataset=new_dataset.where(new_dataset[variable_name].isin(my_list))