我是靠谱客的博主 发嗲柠檬,最近开发中收集的这篇文章主要介绍hive 本地、hdfs数据导入,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1.1导入内部表
(1)本地或者hdfs导入:
        LOAD DATA[LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLEtablename [PARTITION(partcol1=val1, partcol2=val2 ...)]
        区别是看有无关键字local,有local表示从本地路径导入,无local表示从hadoop(hbase或hdfs)导入。
导入的前提是目标表必须存在。如果无表要先建表,再导入:
        CREATE TABLE myword(idSTRING, counts INT, dt STRING) row formatdelimitedfields terminated by ‘t’;
(2)用hive表的select结果导入
INSERT OVERWRITE TABLE T1 SELECT * FROMT2;

其中,INSERT OVERWRITE TABLE表示覆盖,删除原数据;

而INSERT into TABLE 表示增量的插入,不删除原数据。

另外,

删除表:drop table if exists T1;

清空表:truncate table T1;

 

1.2 导入外部表:
建表时直接指定数据源(不能指定本地文件,必须是hdfs路径):
(1)Hdfs上数据导入hive:

    CREATE EXTERNAL TABLE wizad_mdm_dev_lmj_edition_20141120 (
    cookie_id STRING,
    guid STRING
    )      
     ROWFORMAT DELIMITED
         FIELDSTERMINATEDBY ','
         LINESTERMINATEDBY 'n'
         storedas textfile
            LOCATION'/user/wizad/test/lmj/edition_compare/';
        其中,也可以用全路径location'hdfs://namenode/user/wizad/test/lmj/edition_compare/';

(2)Hbase上数据导入hive表:

先指定参数

SET mapred.job.queue.name=queue3;

SEThbase.client.scanner.caching=5000;

SEThbase.zookeeper.quorum=datanode06,datanode07,datanode08;

SET zookeeper.znode.parent=/hbase;

有map类型结构,建表时需要指明:

CREATE EXTERNAL TABLE lxw2 (

key string,

value map<STRING,STRING>

)

STORED BY'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

WITH SERDEPROPERTIES("hbase.columns.mapping" =":key,fixeddim:")

TBLPROPERTIES("hbase.table.name"="wizad_mdm_task_geely_hk_20141014"); 

 

查询结果

SELECT KEY,dim_name,dim_value FROM lxw2

LATERAL VIEW explode(VALUE) myTable1AS dim_name,dim_value

--WHERE KEY = '000000054153796
--------------------- 

原文:https://blog.csdn.net/longshenlmj/article/details/41519503?utm_source=copy 
 

最后

以上就是发嗲柠檬为你收集整理的hive 本地、hdfs数据导入的全部内容,希望文章能够帮你解决hive 本地、hdfs数据导入所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(54)

评论列表共有 0 条评论

立即
投稿
返回
顶部