我尝试使用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查询,以创建一个没有重复的新表。
哪种做法最好?
谢谢你的建议(如果您需要进一步澄清我的问题,请随时询问(对不起,我的英语不好)
暂无答案!
目前还没有任何答案,快来回答吧!