2017-09-06 13 views
0

データセットにはセミコロンの数を除いて値が同じで、異なるレコードになります。ハイブ内の特定の文字の複数の単位を1つの単位に置き換えます。

たとえば、レコードの1つが; b; cを持ち、もう1つのレコードが;; b; cの場合、これは自分のコードで別個の関数の使用を無効にしています。私はこれを重複レコードとして扱うことを望みます。と置き換える必要があります。

複数のものを置き換えるにはどうすればよいですか。シングルと;ハイブのデータセットの文字列に

答えて

0

Hive UDFs

最初の引数で定義されているあなたはregexp_replaceを使用することができます変更を取得する必要がある文字列です。 "; |; "+ +"、REGEXP_REPLACE(study.trial_result - これはあなたに私はそれをこのように使用する出力

+-------+ 
| col| 
+-------+ 
|a;b;c;d| 
+-------+ 
+0

を与える必要があります

with t as (SELECT "a\;\;\;b\;\;c\;d" as col) SELECT regexp_replace(t.col, "\;+", "\;") as col from t 

:だからあなたのようなあなたのテーブルの上にそれを呼び出すことができます; ") – Vaibhav

+0

私は'; 'をエスケープしなければなりませんでしたが、'; + 'はすでに'; 'の1回以上の出現を意味しています。 – philantrovert

関連する問題