我有一个分隔文件,如下面的
donaldtrump 23 hyd tedcruz 25 hyd james 27 hyd
前三组字段应该是一条记录,第二组3条字段是一条记录,依此类推......将此文件加载到下面的hive表中的最佳方法是什么(emp_name,age,location)
答案 0 :(得分:0)
一种非常非常脏的方法可能是:
sed
命令行),它从 stdin 获取源记录,将它们分成N个逻辑记录,并将它们推送到标准输出 警告:这个"流媒体"模式相当慢,因为必须序列化/反序列化为纯文本。但是,一旦你有一个工作的人,开发成本是最小的。
补充警告:当然,如果必须按顺序处理源记录 - 因为逻辑记录可能会溢出到下一行,例如 - 那么你有一个大问题,因为Hadoop可以任意拆分源文件并将拆分提供给不同的Mapper。并且您的示例中没有DISTRIBUTE BY子句的条件。然后,一个非常非常非常脏的技巧是使用GZIP压缩源文件,使其事实上不可拆分。