我有以下问题......我使用 Hive 并希望添加一个包含几行(不同)字符串的文件。这些包含具有固定大小的字段,如下所示:
A20130420bcd 34 fgh
其中字段的长度为 1,8,6,4,3。分开它看起来像这样:
"A,20130420,bcd,fgh"
除了将它作为每个字段的子字符串之外,是否有可能读取字符串并将其排序到一个字段中,例如
substring(col_value,1,1) Field1
ETC?我想切割字符串的已读部分会提高性能,但我可以想出任何方法来使用这里的给定函数来做到这一点。
其次,如前所述,有不同类型的字符串,由第一个字符排序和标识。现在只需使用 WHERE 语句检查这些字符串,但这很可怕,因为它遍历整个文件只是为了找到第一个字符串. 有什么方法可以通过编号读取特定行吗?如果我知道,第一个字符串将是某种类型,可以直接读取吗?
对,它看起来像这样:
insert overwrite table TEST
SELECT
substring(col_value,1,1) field1,
...
substring(col_value,10,3) field 5
from temp_data WHERE substring(col_value,1,1) = 'A';
对此有什么想法吗?
我很想听听一些想法=)