hadoop 如何在分区内创建分区?

jyztefdp  于 2023-10-15  发布在  Hadoop
关注(0)|答案(1)|浏览(193)

我有一些数据存储在一个Hive表,其字段是-日期,平均温度,经度,纬度,城市和国家。
我想根据城市和国家对我的数据进行分区,这样,城市分区就存在于国家分区中。例如,如果我有下面给出的数据,

  1. 06-09-2023,23.2,87. 5 N,87. 4 W,城市-A,国家-J
  2. 06-08-2023,23.2,87. 6 N,87. 2 W,城市-B,国家-J
  3. 05-08-2022,23.1,84.2N,88. 3 W,城市-A,国家-K
  4. 04-08-2022,22.1,81.2N,82. 3 W,城市-B,国家-K
    然后,在创建分区并将数据移动到分区中之后,数据应该以下面的形式存储-
  1. Table Name
  2. |
  3. -- Country-J
  4. | |
  5. | -- City-A
  6. | -- City-B
  7. |
  8. -- Country-K
  9. |
  10. -- City-A
  11. -- City-B

我知道如何创建单个分区,但不知道如何创建嵌套分区。我试着在网上找过,但到现在还没有任何解决方案。任何帮助将不胜感激。谢谢你,谢谢

scyqe7ek

scyqe7ek1#

您可以通过在多个列上进行分区来实现这一点。分区列的顺序决定分区的大小。
像这样创建表格-

  1. CREATE TABLE mytable(
  2. ID BIGINT,
  3. NAME STRING
  4. )
  5. COMMENT 'Multi level partitioned table'
  6. PARTITIONED BY(Country STRING, City STRING)

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

  1. |
  2. -- Folder_Country-J
  3. | |
  4. | -- Folder_City-A
  5. - files for Country-J and City-A
  6. | -- Folder_City-B
  7. - files for Country-J and City-B
  8. |
  9. -- Folder_Country-K
  10. |
  11. -- Folder_City-A
  12. - files for Country-K and City-A
  13. -- Folder_City-B
  14. - files for Country-K and City-B
展开查看全部

相关问题