Edited at

Hive関数のPARSEとかCONCATのことをよく知らなかったので調べた

More than 3 years have passed since last update.

CONCATはSQLで文字列を連結させる関数なので、例えば

PARSE(CONCAT('http://mixi.jp', url), 'PATH')

みたいのがあったら CONCAT('http://mixi.jp', url)http://mixi.jp/home.pl とかそういうのが入っているってこと。(この場合 url には /home.pl が入っている。)

urlはリクエストURIというのが入っているらしく、/home.plみたいの以外にも /view_bbs.pl?id=XXXXXX&comm_id=XXXXXX みたいなquery stringがくっついたのも一緒に入っていることもある。

ここからパスだけを抜き出したい、クエリだけを抜き出したいという場合にPARSE関数を使う。例えば、直上のquery stringを含んだリクエストURIがurlに入っている場合、パスを取り出すなら↑のようなHiveクエリを書けばいいし、クエリを取り出したいのであれば

PARSE(CONCAT('http://mixi.jp', url), 'QUERY', 'id')

と書けばidの値(XXXXXX)が取得できる。