私のデータは次のようになります。
a||b||c
データをフェッチするには、私の create table ステートメントは次のとおりです。
テーブルを作成
( col1 STRING,
col2 文字列、
col3 STRING)
"||" で終了する行形式の区切りフィールド。
しかし、ここでは「|」を取っています 「||」ではなく区切り文字として。
誰でもこれについて私を助けることができますか?
複数文字の区切り文字列を扱う場合は、 RegexSerDeを使用できます。
create table mytable (
col1 string,
col2 string,
col3 string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe'
WITH SERDEPROPERTIES (
"input.regex" = "^([^\\|]+)\\|\\|([^\\|]+)\\|\\|([^\\|]+)$",
"output.format.string" = "%1$s %2$s %3$s")
STORED AS TEXTFILE
LOCATION '/path/to/data';
注:ニーズに合わせて正規表現を改良してください