ImpalaまたはHiveを使用して、テーブル列の複数の文字列要素を抽出します
Aug 21 2020
次のような複数の文字列要素(配列ではない)を含むリストで要素が構成される列Aがあります。
**A**
1 'A123','B234','C123'
2 'A123','B234'
3 'A124',
リスト要素の量はレコードによって異なります。ただし、リスト要素は常に同じ長さであり、コンマで区切られます。
これらの文字列要素を別のテーブル/リストBに抽出し、次のような個別の要素を取得する必要があります。
**B**
1 'A123'
2 'A124'
3 'B234'
4 'C123'
SQLを使用してそれを行うにはどうすればよいですか?ImpalaまたはHiveを使用しています。分析にClouderaHueを使用しています。
ありがとう、
KS
回答
3 serge_k Aug 21 2020 at 15:39
最初にlateral view explode
配列要素を含む列を作成するために使用し、次にdictinctを使用します。
SELECT distinct elem as col1
FROM tableA LATERAL VIEW explode(split(array_column, ',')) aTable AS elem
詳細については、Hiveのマニュアルを参照してください。lateral view