使用 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