获取hive中与regex匹配的所有匹配分区

mpgws1up  于 2021-07-13  发布在  Hadoop
关注(0)|答案(0)|浏览(285)

我有一个配置单元表,它是多个列上的分区。我需要获取部分分区名的分区列表。
例如:表foo\u table是分区

  1. | PARTITIONED BY ( |
  2. | `dt` string COMMENT 'Custom Partition.', |
  3. | `h` string COMMENT 'Custom Partition.', |
  4. | `b` string COMMENT 'Custom Partition.', |
  5. | `sv` string COMMENT 'Custom Partition', |
  6. | `p` string COMMENT 'Custom Partition', |
  7. | `dc` string COMMENT 'Custom Partition')

现在我需要获取所有的分区,比如dt=somevalue
如果我给出所有分区列的值,下面的代码将起作用。

  1. List<String> list = ...
  2. list.add("dt=2021-02-01/h=19/b=30/sv=1/p=03/dc=aa")
  3. List<Partition> partitions = HiveMetaStoreClient.getPartitionsByNames(database, tableName, list)

但如果我只想通过给 dt=2021-02-01/h=19 这不管用。

  1. List<String> list = ...
  2. list.add("dt=2021-02-01/h=19")
  3. //OR
  4. list.add("dt=2021-02-01/h=19/")
  5. //OR
  6. list.add("dt=2021-02-01/h=19/*")
  7. //OR
  8. list.add("dt=2021-02-01/h=19/b=*/sv=*/p=*/dc=*")
  9. List<Partition> partitions = HiveMetaStoreClient.getPartitionsByNames(database, tableName, list)

如何做到这一点?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题