1)我想尝试下面与JSON相关的链接中的示例。当我在互联网上检查时,我发现了很多JSON SerDe。 不确定我需要使用哪一个,以及每个之间有什么区别?
http://thornydev.blogspot.in/2013/07/querying-json-records-via-hive.html
2)我是hive的新手,以及如何将数据加载到hive表中。当我在Internet上检查时,我发现使用Load并使用Insert语句。 不确定我需要使用哪一个,以及每个之间有什么区别?
答案 0 :(得分:0)
如果你正在使用cloudera hadoop: 1) .A根据您正在使用的CDH版本从http://www.congiu.net/hive-json-serde/1.3/下载JSON serde。
B.添加"添加jar"将此jar添加到hive aux jar路径或hive会话中。声明
C.CREATE EXTERNAL TABLE data_json(name string,address string,reference map,contact_no string)
行格式SERDE' org.openx.data.jsonserde.JsonSerDe'
存储为文本文件位置' / hdfs / path / forjsonfile /';
假设数据以json文档的形式存储。
LOAD& INSERT命令
A)我们可以使用load语句从本地路径或hdfs路径将数据加载到hive仓库 恩。 LOAD DATA LOCAL INPATH' / path / to / file' INTO表" tbl_name"在使用INSERT语句时,我们可以将相关数据复制到我们的表中 INSERT OVERWRITE表' tbl_name" SELECT * FROM" other_table"
B)使用load命令我们实际上是将文件从hdfs移动到hive仓库,而在INSERT命令中我们只是复制数据。