hiveSQL中的split函数还挺矫情;
- 首先,split之后必须跟as,例:
SELECT split('my_q','_'); #报错
SELECT split('my_q','_') as C #正确
- 其次如果想取split之后数组中的元素,必须进行子查询:
SELECT
b.a_1[0] as a_1_1, #split之后再进行子查询,选择split之后数组中的元素
b.a_1[1] as a_1_2,
b.a_2[0] as a_2_1,
b.a_2[1] as a_2_2
FROM (
SELECT
split(a.my,'_') as a_1, #先split
split(a.you,'_') as a_2
FROM (
SELECT 'my_q' as my,'c_d' as you
) a
) b