关于json和insert的hive澄清

时间:2016-05-10 11:23:15

标签: json hive

1)我想尝试下面与JSON相关的链接中的示例。当我在互联网上检查时,我发现了很多JSON SerDe。 不确定我需要使用哪一个,以及每个之间有什么区别?

http://thornydev.blogspot.in/2013/07/querying-json-records-via-hive.html

2)我是hive的新手,以及如何将数据加载到hive表中。当我在Internet上检查时,我发现使用Load并使用Insert语句。 不确定我需要使用哪一个,以及每个之间有什么区别?

1 个答案:

答案 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文档的形式存储。

  1. 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命令中我们只是复制数据。