我想從一個字符串(composite_key)子串值: 我composite_key看起來如下面提及的一樣:查找子串在HIVE
string1|string2|string3|string4|string5|string6|string7
我能找到字符串1,字符串,STRING3,串,4和string5使用子串方法impala
有人可以幫我找到String6和String7使用子串方法嗎?
任何幫助將被appericiated。
我想從一個字符串(composite_key)子串值: 我composite_key看起來如下面提及的一樣:查找子串在HIVE
string1|string2|string3|string4|string5|string6|string7
我能找到字符串1,字符串,STRING3,串,4和string5使用子串方法impala
有人可以幫我找到String6和String7使用子串方法嗎?
任何幫助將被appericiated。
我可以用下面的查詢做到這一點:
對於String7
select substring(composite_key,locate('|',composite_key,locate('|',composite_key,locate('|',composite_key,locate('|',composite_key,locate('|',composite_key, locate('|',composite_key) + 1)+1)+1)+1)+1)+1)as a
對於String6
select
substring(composite_key,
locate('|',composite_key,
locate('|',composite_key,
locate('|',composite_key,
locate('|',composite_key,
locate('|',composite_key) + 1)+1)+1)+1)+1,
locate('|',composite_key,
locate('|',composite_key,
locate('|',composite_key,
locate('|',composite_key,
locate('|',composite_key,
locate('|',composite_key) + 1)+1)+1)+1)+1)
- locate('|',composite_key,
locate('|',composite_key,
locate('|',composite_key,
locate('|',composite_key,
locate('|',composite_key) + 1)+1)+1)+1)-1)
as a
你必須使用蜂巢子查詢+陣列+拆分函數來完成這個。但是,這隻適用於Hive。 Impala不支持嵌套數據結構,但Impala 2.3(對應於CDH 5.5)及更高版本中的基於parquet的表除外。
select
key_array[0] part0,
key_array[1] part1,
key_array[2] part2,
key_array[3] part3,
key_array[4] part4,
key_array[5] part5,
key_array[6] part6,
from (
select split(composite_key,'|') as key_array
from mytable
) as temp
請張貼你正在做的一些示例代碼 – Jared