HIve:创建hive表并通过HDFS文件进行导入数据(速度最快)

1 篇文章 0 订阅

最近这个项目做hive建表在导入数据的时候,数据量大的时候难免会慢一点,现在又发现了一种新的导入数据方式;

使用hdfs的文件进行导入,所以要使用的话就得先把文件上传到hdfs再操作

三个前提:1.文件必须已经上传到hdfs,否则不行。2.这个表必须是不存在的,不能在已表上进行叠加数据;3.必须是目录级别,不能具体到文件;如果目录底下有多个文件,将会把所有文件数据都导入进去如果正好需要将目录下所有文件都导入那就最合适了。

如果都可以满足那就接着往下看吧,

    @Test
    public void createHiveTableAndData() {
        String sql = "create external table 库.表名(\n" +
                "id string\n" +
                ",names string\n" +
                ",sex string\n" +
                ",age string\n" +
                ",psd string\n" +
                ",post string\n" +
                ")\n" +
                "row format delimited fields terminated by ','\n" +
                "stored as textFile\n" +
                "location '/dataFiles/offlineFile/201911280/'";
         hiveJdbcBaseDaoImpl.getJdbcTemplate().execute(sql);

    }

就是一个建表语句,默认是 , 进行分割,我使用的是csv和json两种格式;

 "location '/dataFiles/offlineFile/201911280/'";  这个目录就是hdfs目录

这是我目前知道的最快方式,之前用的都是 load data local inpath 方式;

   String  sql = "load data local inpath '" + filepath + "' into table person" ;

如果有兴趣需要了解可以在找我其他博客。基本都有更新;

有更好的方式还请留言讨论 ~   或者+q:983469079

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值