从HDFS数据

时间:2016-06-03 13:56:07

标签: json hadoop hive duplicates replication

我尝试使用org.apache.hive.hcatalog.data.JsonSerDe从json文件创建一个表到hive。

首先,将文件从本地加载到HDF。这是Hive中的代码:

CREATE EXTERNAL TABLE tweet8(
  user struct<userlocation:string, id:string, name:string>,
  tweetmessage string,
  createddate string,
  geolocation string)
ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION '/tmp/hive/hello';

Hive复制除最后一个对象之外的文件中存在的记录。例如,在我的文本文件中,有4个JSON对象A,B,C,D;在Hive中加载后,我有A,A,B,B,C,C,D。

根据我的理解,当从本地加载文件到HDFS时,Hadoop会创建多个复制。基于这些复制,我们在Hive表中有重复。该问题有两种解决方案:

  

1 - 将文件从本地上传到HDFS时,将复制因子设置为1;
  2 - 在创建表之后,我在上面做了一个SELECT Distinct查询   tweet8表创建一个没有重复的新表。

哪种做法最好?

感谢您的任何建议! (请随意询问您是否需要进一步澄清我的问题并抱歉我的英语不好)

0 个答案:

没有答案