u011856283
你好杰米
2018-04-13 09:50
采纳率: 95%
浏览 2.1k
已采纳

hive使用load导入csv文件,怎么自动创建分区?

数据表格式如下
name,year,month,day

4个字段,后三个是分区字段

然后现有一csv文件内容为
jamie,1996,04,10
hims,1995,05,17
kash,1997,12,11

怎么在使用load data导入的时候成功导入,并且自动创建分区?
求语句

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • banzhuanai
    banzhuanai 2018-04-13 10:39
    已采纳

    问过老大了,只能指定分区,不能自动分区

    点赞 评论
  • github_39407052
    奔跑灬五花肉 2018-04-13 10:13

    LOAD DATA LOCAL INPATH 'csv文件路径'
    INTO TABLE 标名称 PARTITION (day = '2018-04-13')

    点赞 评论
  • scl323
    Nick-_-Song 2018-04-14 08:14

    可以是可以但是要两步操作
    1,先导入到一张没有分区的表里面temp
    2, 创建分区表
    CREATE TABLE test ( name string) PARTITIONED BY (year string, month string , day string) ROW FORMAT DELIMITED
    FIELDS TERMINATED BY ','
    LINES TERMINATED BY '\n'
    STORED AS TEXTFILE;
    2,执行下面代码
    set hive.exec.dynamic.partition.mode=nonstrict;
    set hive.exec.dynamic.partition=true;
    insert overwrite table test
    partition (year,month,day)
    select name, year, month, day from temp;
    3, 注意插入的顺序一定得按建表的字段顺序一样

    点赞 评论

相关推荐