Hiveは正規表現を使用します。RLIKEはエスケープ文字を使用する必要があります
Hive Uses Regexp Rlike Needs Use Escape Characters
データクリーニングにHiveを使用するには、多くの場合、正規表現を使用する必要があります。
さらに厄介なのは、正規表現の一致が失敗した場合、Hiveがエラーをまったく報告しないことです。
オリジナルの書き方
SELECT * from ahhs_product_info where product_name NOT RLIKE '([ u4e00- u9fa5])+'
ハイブで書かれた
SELECT * from ahhs_product_info where product_name NOT RLIKE '([u4e00- u9fa5])+ '
さらに、Hiveの正規表現を使用してデータを抽出します。regexp_extract()
使用法は次のとおりです。
regexp_extract(文字列の件名、文字列パターン、intインデックス)
正規表現で指定された部分を添え字で返します。 Regexp_extract( ‘foothebar’、 ‘foo(。*?)(bar)’、2)は ‘bar’を返します。
ここでのインデックスは、一致するすべてのN番目を返すことを意味することに注意してください。一致するオブジェクト> = 2の場合にのみ、インデックスは1,2になります。通常は0です。
といった:
select uid, visittime, pageUrl, r_id, regexp_extract(pageUrl,'(?<=p-)\d+(?=\.html)',0) as pid from sitevisitlog where statdate='20141021' -- Extract the use of product ID based on the URL
正規表現は、通常、エスケープ文字を使用して認識できます。
正規表現の能力は、OracleのLIKEよりもはるかに優れています。 !