若是有時候遇到數據源是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