1
テーブル内の生データを構文解析するための正規表現があります。',?([\w]*|\d*)'
。Hive - グループを作成して配列に割り当てるには、regxpを使用してください。
select regexp_extract(raw_line,',?([\w]*|\d*){1}',1) as field1
, regexp_extract(raw_line,',?([\w]*|\d*){2}',1) as field2
, ...
, regexp_extract(raw_line,',?([\w]*|\d*){n}',1) as fieldn
from table
これは、CSVフィールドを解析するグループを作成します。問題は、テーブルと解析する各行が長いため、これは高価な操作です。
私はグループ{n}
なし(正規表現を使用して、配列に分割することができれば、私は、各フィールドを取得するために、配列のインデックスを使用することができ、私が思っていたような何か:。。
select arr_raw[0] as field1,
...,
arr_raw[n] as fieldn
from (
split(
select regexp_extract(raw_line, ',?([\w]*|\d*)'
, ) as arr_raw -- ??
)t
を私は知っていますこれが可能であるか、正しい構文/アプローチはどうあるべきかあればどのように多くのグループが表になりますが、わからないだろう。
感謝。
チェック更新の回答 –