我遇到以下問題... 我使用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