您需要将数据重新加载到分区表中。 使用csv在文件夹顶部创建非分区表(mytable)。 创建分区表(mytable\u part) create table mytable_part( --columns specification here for col1, col2, col3, col4 ) partitioned by (part_month string) ... stored as textfile --you can chose any format you need 使用动态分区将数据加载到分区表中,在查询中计算分区列: 设置hive.exec.dynamic.partition=true;设置hive.exec.dynamic.partition.mode=nonstrict; insert overwrite table mytable_part partition (part_month) select col1, col2, col3, col4, substr(col1, 1, 7) as part_month --partition column in yyyy-MM format from mytable distribute by substr(col1, 1, 7) --to reduce the number of files ;
2条答案
按热度按时间dwbf0jvd1#
您需要将数据重新加载到分区表中。
使用csv在文件夹顶部创建非分区表(mytable)。
创建分区表(mytable\u part)
create table mytable_part( --columns specification here for col1, col2, col3, col4 ) partitioned by (part_month string) ... stored as textfile --you can chose any format you need
使用动态分区将数据加载到分区表中,在查询中计算分区列:设置hive.exec.dynamic.partition=true;设置hive.exec.dynamic.partition.mode=nonstrict;
insert overwrite table mytable_part partition (part_month) select col1, col2, col3, col4, substr(col1, 1, 7) as part_month --partition column in yyyy-MM format from mytable distribute by substr(col1, 1, 7) --to reduce the number of files ;
wvyml7n52#
这样试试
将csv数据复制到hdfs位置的文件夹中hdfs://somepath/5 并将该路径作为分区添加到外部表中。