文字列の空白を除去するTRIM関数で、HiveとPrestoに違いがあったのでメモ。
基本は半角スペースを除去。
SELECT TRIM(' a')
=> 'a'
では全角スペースは?
SELECT TRIM(' a')
Hive - 除去されない
Presto - 除去される。
PrestoのTrimは、 SliceUtf8.trim
で実現されていて、ライブラリ独自の挙動みたいですね。
https://github.com/airlift/slice
HiveでPrestoのTRIMと動作を揃えるには、regexp_replaceをしないとだめかなー、というところですね。
SELECT regexp_replace(TRIM(' a '), '^ | $', '')
ryukoba-sanのコメントより複数全角空白を考慮した場合は下記。
SELECT regexp_replace(TRIM(' a '), '^ +| +$', '')
ちゃんちゃん。