从hdfs数据创建表时配置单元重复记录

f0brbegy  于 2021-06-02  发布在  Hadoop
关注(0)|答案(0)|浏览(253)

我尝试使用org.apache.hive.hcatalog.data.jsonserde创建一个从json文件到hive的表。
首先,将文件从本地加载到hdf。以下是配置单元中的代码:

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';

配置单元复制除最后一个对象之外的文件中现有的记录。例如,在我的文本文件中,有4个json对象a、b、c、d;装进Hive后,我有a,a,b,b,c,c,d。
据我所知,当从本地加载文件到hdfs时,hadoop会创建大量的复制。基于这些复制,我们在hive表中有了复制。有两种解决方案:
1-将文件从本地上传到hdfs时,将复制因子设置为1;
2-在create table之后,我对tweet8表执行select distinct查询,以创建一个没有重复的新表。
哪种做法最好?
谢谢你的建议(如果您需要进一步澄清我的问题,请随时询问(对不起,我的英语不好)

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题