使用 Impala 或 Hive 在 table 列中提取多个字符串元素
Extract multiple string elements in table column using Impala or Hive
我有一列 A,其元素由具有多个 string 元素(不是数组)的列表组成,例如:
**A**
1 'A123','B234','C123'
2 'A123','B234'
3 'A124',
列表元素的数量因记录而异。然而,列表元素始终具有相同的长度并以逗号分隔。
我需要将这些字符串元素提取到单独的 table/list B 中并获取不同的元素,例如:
**B**
1 'A123'
2 'A124'
3 'B234'
4 'C123'
我如何使用 SQL 做到这一点?我正在使用 Impala 或 Hive
我正在使用 Cloudera Hue 进行分析。
谢谢,
KS
首先使用lateral view explode
创建一个包含数组元素的列,然后是dictinct,例如
SELECT distinct elem as col1
FROM tableA LATERAL VIEW explode(split(array_column, ',')) aTable AS elem
有关 lateral view
的更多详细信息,请参见 Hive's manual
我有一列 A,其元素由具有多个 string 元素(不是数组)的列表组成,例如:
**A**
1 'A123','B234','C123'
2 'A123','B234'
3 'A124',
列表元素的数量因记录而异。然而,列表元素始终具有相同的长度并以逗号分隔。
我需要将这些字符串元素提取到单独的 table/list B 中并获取不同的元素,例如:
**B**
1 'A123'
2 'A124'
3 'B234'
4 'C123'
我如何使用 SQL 做到这一点?我正在使用 Impala 或 Hive 我正在使用 Cloudera Hue 进行分析。
谢谢,
KS
首先使用lateral view explode
创建一个包含数组元素的列,然后是dictinct,例如
SELECT distinct elem as col1
FROM tableA LATERAL VIEW explode(split(array_column, ',')) aTable AS elem
有关 lateral view