我们可以在同一个查询中添加静态和动态分区。如果是,将如何根据以下数据创建文件夹?
如何在HDFS中创建文件夹结构?
答案 0 :(得分:1)
是。将根据您在表定义中使用的顺序,按层次结构创建文件夹结构。例如,如果您使用以下内容定义表:
CREATE TABLE your_table (
column1 INT,
column2 STRING
...
columnN FLOAT
)
PARTITIONED BY (country STRING, state STRING);
您可以为国家/地区定义静态值,为州创建动态值。在这种情况下,您要提前指定静态分区的值('US'),并让Hive读取列“state”的值(在SELECT
查询的每一行)并且为每个州动态创建文件夹(唯一的HDFS路径)。
INSERT OVERWRITE TABLE your_partitioned_table
PARTITION (country = 'US', state)
SELECT T.column1, T.column2, ..., T.country, T.state
FROM your_table T
WHERE T.country = 'US';
你的HDFS文件夹结构是这样的:
.../your_table/country=US/state=CA
...
.../your_table/country=US/state=NY
Here您有关于如何在Hive中使用动态和静态分区的出色指南。