我遇到以下问题... 我使用Hive并希望添加具有多个(不同)字符串行的文件。那些包含固定大小的字段,如下所示:从Hive中的字符串中分离字段
A20130420bcd 34 fgh
其中字段的长度为1,8,6,4,3。 分居它应该是这样的:
“A,20130420,BCD,FGH”
是否有可能读取字符串,并将其分类到现场,除了得到它作为一个子像
各个领域substring(col_value,1,1) Field1
etc? 我会想象切割字符串的已读部分会提高性能,但我可以想办法用给定的函数here来做到这一点。其次,如前所述,有不同类型的字符串,由第一个字符排序和标识。现在只需使用WHERE-Statement检查那些字符串,但它很可怕,因为它贯穿整个文件以查找只有第一个字符串。有没有什么办法通过他们的号码阅读特定的行?如果我知道,第一个字符串是特定类型的,可以直接读取它?
右它看起来像这样:
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';
上任何想法?
我很乐意听到的一些想法=)
蜂巢0.10.0.21,有人吗? – Maltram 2013-04-22 18:26:13
除了检查特定的字段之外,还有一些方法可以通过索引来处理单个行? – Maltram 2013-04-28 10:36:21
你在担心多个substring操作和全表扫描的性能影响吗?这是我们正在讨论的Hive,对吧?如果性能出现问题,只需向集群添加更多节点即可。 – 2013-05-17 16:01:21