0

別の場所で答えがあれば申し訳ありません。

Hive フィールドに 0 ~ n 回の '&' の出現とそれに続く各出現の後にテキストを持つことができる文字列を格納しています。

Hive では、最後のオカレンスを見つけて、そのオカレンス以降のすべてのテキストを取得したいと考えています。

使用して...

split(field1,'[&]')[n]

... n 番目のオカレンスを取得できますが、最後のオカレンスを予測したり、逆方向に数えたりすることはできません。

私は以下を機能させることができました:

reverse(split(reverse(field1),'[&]')[0])

ただし、3 つの関数を使用すると、多くの不要なオーバーヘッドが発生するように思えます。regexp_extract() で正規表現を使用できることは知っていますが、正規表現に困惑しています。

regexp_extract() はより高速で、これはどのように達成されますか?

4

1 に答える 1