2016-12-13 36 views
0

私は罰金正規表現正規表現と異なるハイブ正規表現ですか?

([^ ]*) ([^ ]*) ([^ ]*) (-|\\[[^\\]]*\\]) ([^ \"]*|\"[^\"]*\") (-|[0-9]*) (-|[0-9]*) 

を作品ハイブテーブルにこれをロードするには、以下の正規表現を使用するが、私はこれをチェックすると、この

415503 - - [10/Jun/1998:00:48:00 +0000] "GET /english/images/nav_sitemap_off.gif HTTP/1.1" 200 416 

のように見えるウェブ・ログを分析するためにハイブを使用しています正規表現https://www.regex101.com/で、この正規表現は私の文字列と一致しません。

は、私はそれが検証され

(-|\\[[^\\]]*\\]) 

ブロック内のいくつかのバックスラッシュを削除した場合。

私はHiveで正規表現になるときに\をエスケープ文字列にする必要があると思いますか?しかし、データベースを作成する前に、これをどのように検証するのですか?

答えて

1

ハイブはJava正規表現の構文を使用します。テスト目的でhttp://www.fileformat.info/tool/regex.htmを試してください。

Apache Hive - REGEXColumnSpecificationを参照してください。

Test with your input

+0

ありがとうございます!だから私は正規表現を正規の方法を設定したリンクから私はハイブの作成ステートメントのためのJava String正規表現を使用することができますか? :) – Dee

+0

正しい - あなたの入力を最初に試してください - 更新を参照してください –