我是hive和hadoop的初学者。我在hive表中加载了一个文件,如下所示:
YEAR;DEP;CAP
2012;1;6774
2013;1;7082
2014;1;6377
2015;1;7319
2005;94;7893
2006;94;8620
2007;94;8144
我想在输出中有n个平面文件,按dep分组,并命名为datafile\u dep:
第一个文件
2012;1;6774
2013;1;7082
2014;1;6377
2015;1;7319
第二个文件
2005;94;7893
2006;94;8620
2007;94;8144
等等。每次我有一个新的dep创建新的文件。
我该怎么做?非常感谢你的帮助
1条答案
按热度按时间46scxncf1#
配置单元不提供任何现成的工具来创建具有已定义文件名的文件。
使用hive动态分区可以解决一半的问题,请阅读这里。创建另一个在上分区的表
DEP
列,然后加载数据。作为配置单元分区,存储在hdfs目录上的数据和每个分区列的值都符合单独的hdfs路径。每个dep值在dep\u分区表位置上都有单独的目录,接下来使用bash脚本为每个dep目录创建单独的文件。
我希望这有帮助。