如何在hive中的分区内创建分区?

问题描述 投票:0回答:1

我在配置单元表中存储了一些数据,其字段为 - 日期、平均温度、经度、纬度、城市和国家/地区。

我想根据城市和国家/地区对数据进行分区,以便城市分区存在于国家/地区分区内。例如,如果我有下面给出的数据,

  1. 2023年6月9日,23.2,87.5N,87.4W,A市,J国
  2. 2023年6月8日,23.2,87.6N,87.2W,B市,J国
  3. 2022年5月8日,23.1,84.2N,88.3W,A市,K国
  4. 2022年4月8日,22.1,81.2N,82.3W,B市,K国

然后,创建分区并将数据移动到分区后,数据应以以下形式存储 -

Table Name 
    |
     -- Country-J
    |      |
    |       -- City-A
    |       -- City-B
    |
     -- Country-K
           |
            -- City-A
            -- City-B

我知道创建单个分区,但不知道嵌套分区。我尝试在网上查找,但到目前为止还没有任何解决方案。任何帮助都感激不尽。谢谢!

hadoop hive bigdata
1个回答
0
投票

您可以通过对多个列进行分区来做到这一点。像这样创建你的表格 -

CREATE TABLE mytable(
ID BIGINT,
NAME STRING 
)
COMMENT 'Multi level partitioned table'
PARTITIONED BY(Country STRING, City STRING)

这将创建一个分区结构(物理文件夹),就像您在问题中提到的那样。

 
    |
     -- Folder_Country-J
    |      |
    |       -- Folder_City-A
                 - files for Country-J and City-A
    |       -- Folder_City-B
                 - files for Country-J and City-B
    |
     -- Folder_Country-K
           |
            -- Folder_City-A
                 - files for Country-K and City-A
            -- Folder_City-B
                 - files for Country-K and City-B
© www.soinside.com 2019 - 2024. All rights reserved.