雑文発散

«前の日記(2014-09-08) 最新 次の日記(2014-09-10)» 編集
過去の日記

2014-09-09 [長年日記]

[Hive] Hive で配列の集計をするときに使う LATERAL VIEW の構文がなんか頭に入ってこない

Hive のデータ型には配列があるんだけど、その配列をサクっと集計する方法に LATERAL VIEW というものがある。

マニュアルページのサンプルを抜粋するとこんな感じ。pageid は文字列型、adid_list カラムが配列型になっている。

  • テーブルの状態(pageAds テーブル)
pageid adid_list
front_page [1, 2, 3]
contact_page [3, 4, 5]
  • クエリ
SELECT pageid, adid
FROM pageAds LATERAL VIEW explode(adid_list) adTable AS adid;
  • 出力
pageid (string) adid (int)
"front_page" 1
"front_page" 2
"front_page" 3
"contact_page" 3
"contact_page" 4
"contact_page" 5

さらにここから、それぞれの adid が出てきた数を求めるクエリがこうなる。

  • クエリ
SELECT adid, count(1)
FROM pageAds LATERAL VIEW explode(adid_list) adTable AS adid
GROUP BY adid;
  • 結果
int adid count(1)
1 1
2 1
3 2
4 1
5 1

動作としては、こういうことができるのがありがたいのだけど、FROM 句の構文がなんかイマイチしっくりこなくて覚えられない。FROM 句の pageAds は元のテーブル名なので、まぁ、そこにいるのは良い。LATERAL VIEW の後ろにある adTable はテーブルのエイリアス名とのことなので、そういうものかなという気もしなくもない。ただ、その先に adid というカラム名のエイリアスが入ってくるのがうまく理解できない。

そこ、テーブル名が並ぶ場所じゃないのかよ!という意識が前面に来て、なんかモヤモヤしてしまう。

なんか理解が足りないんだろうなぁ。

プログラミング Hive(Edward Capriolo/Dean Wampler/Jason Rutherglen/佐藤 直生/嶋内 翔/Sky株式会社 玉川 竜司)

[] クロコスがヤフーに吸収合併されることになった

2013年1月にクロコスへ入社してから、1年と9ヶ月くらい。今日、ちょっと大きな動きがあった。

内容は「ヤフー株式会社への吸収合併に関するお知らせ」に詳しいのだけれど、親会社であるヤフー株式会社に吸収合併されることになったのだ。

11月にはクロコスが消滅する。