首页 文章

在 pyspark 中过滤 Hive 分区表

提问于
浏览
0

我有一个蜂巢表,在许多国家/地区都有分布。我想将特定的分区数据加载到我的数据框中,如下所示:

df=spark.read.orc("/apps/hive/warehouse/emp.db/partition_load_table").where('country="NCL"' && 'county="RUS"')

尽管我能够为单个分区加载,但这给了我一个错误。

下面是我在 hdfs 中的目录结构

/apps/hive/warehouse/emp.db/partition_load_table/country=NCL

df=spark.read.orc("/apps/hive/warehouse/emp.db/partition_load_table").where('country="NCL"')

1 回答

  • 1

    不知道为什么不只使用 HQLContext 直接查询配置单元表:

    spark.sql("select * from partition_load_table where country in ('NCL', 'RUS')")

    如果由于某些原因不可用,则可以合并基础配置单元分区。首先将它们作为单独的数据框和联合读取。就像是:

    rus = spark.read.orc("/apps/hive/warehouse/emp.db/partition_load_table/country=rus") ncl = spark.read.orc("/apps/hive/warehouse/emp.db/partition_load_table/country=ncl") df = rus.union(ncl)

相关问题