若是有时候遇到数据源是json的格式(好比直接读取mongoDB的数据), hive解析就要麻烦一点, 主要有如下2种方法:apache
一、将json以字符串的方式整个入Hive表,而后使用LATERAL VIEW json_tuple的方法(至关于生成json串的模型),获取所须要的列名。 这种方法仍是比较麻烦,尤为是字段多的时候, 第二种方法用起来更方便.json
二、使用第三方的SerDe将json拆成各个字段入Hive表里, 我使用的是hive1.2.1能够正常使用, 下载地址:http://download.csdn.net/download/ls386239766/8662797bash
# 添加jar包 hive> add jar /usr/local/hive/lib/json-serde-1.3-jar-with-dependencies.jar; hive> # 建立hive表 CREATE TABLE test_json ( id BIGINT, text STRING, ) ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.JsonSerde' STORED AS TEXTFILE ; LOAD DATA LOCAL INPATH "test.json" OVERWRITE INTO TABLE test_json;
若是以为每次运行都要加载这个jar包比较麻烦, 能够把jar包路径添加到hive-env.sh里.oop