根据Python列表过滤蜂巢数据集



我对Hive和Spark我很陌生,但是我想做的感觉应该很简单。从本质上讲,我想从Python列出一份列表,然后仅从Hive中提取该列表中的钥匙的记录。这样:

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)

我知道这是一个非常通用的问题,但是我该怎么做?这甚至可能吗?

这应该起作用 -

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))

您可以转换为元组

my_list=['a','b','c','d']
new_dataset  = spark.sql(f"""SELECT * 
                               FROM hive_dataset 
                              WHERE variable_name IN {tuple(my_list)}
                          """)

相关内容

  • 没有找到相关文章

最新更新