0

所以,我有一个现有的 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 字符串”(其中 x 是额外元素的增量)......但我不知道最终可能会有多少,而且这看起来很乱。

有没有办法告诉 hive 将该行的所有剩余字段放入一个字段中,例如“其他字符串”?即使它是在 hive 返回值中用制表符分隔的......我对此表示满意。

提前致谢。

4

1 回答 1

1

在 Hive 中创建表本质上只是创建元数据,告诉 hive 如何解释文件。Hive 不“知道”其余数据。

如果您将另一列添加为数组并指定COLLECTION ITEMS TERMINATED BY '\0002'(\0002 或其他字符),则选项卡将不会终止数组集合,并且应全部作为单个元素返回,包括选项卡。还没有测试过这个。:)

于 2011-05-12T14:31:40.500 回答