所以,我有一个现有的hdfs目录,包含一堆文件。这些文件都是以制表符分隔的。
我有一个蜂巢声明......
create external table
mytable(
key string,
name string,
address string,
ssn string)
row format delimited fields
terminated by '09', lines terminted by '10'
STORED AS TEXTFILE location '/MyHiveFiles/data';
除了所有额外的字段外,这种方法效果很好。该文件还包含ssn字段之后的0到x个额外数据元素。它们仍然以制表符分隔,并且'\ n'记录分隔。我可以添加一堆'valuex string'(其中x是额外元素的增量)......但我不知道最终可能会有多少,而且无论如何这似乎都很混乱。
有没有办法告诉配置单元将该行的所有剩余字段放入一个字段,如“其他字符串”?即使它是在hive返回值中的制表符分隔...我也没关系。
提前谢谢。
答案 0 :(得分:1)
在Hive中创建表基本上只是创建元数据告诉配置单元如何解释文件。 Hive并不“知道”剩下的数据。
如果您将另一列添加为数组并指定COLLECTION ITEMS TERMINATED BY '\0002'
(\ 0002或其他一些字符),则选项卡将不会终止数组集合,并且应该作为单个元素返回,包括选项卡。尚未测试过这个。 :)