1 、 Возможно, вы можете попытаться написать UDF
для приведения этой строки к массиву arr
, затем вы можете использовать arr [4] для посещения 5-го значения;
2 、 Или выможно использовать следующий способ для получения 5-го значения:
select tf.* from (
select regexp_replace('("abc", "123-4567", "10", "ax", "cdpp asd", "00", "q", "na", "avail", "n", "n", "na")','\\(|\\)|"','') as str
) t lateral view posexplode(split(str,', ')) tf as pos,val
where tf.pos = 4;
Примечание: этот способ требует, чтобы строка массива не имела скобок.