HIVE

文字列操作

Hiveの文字列操作で使ったUDFメモ split split(string str, string pat) 文字列を指定パターンで分割する |datetime +-------------------- |2014/07/17 13:30:00 split(datetime,' ')[0] > 2014/07/17 split(datetime,' ')[1] > 13:30:00 regexp_replace re…

MAPJOINメモ

table_m : 10000件 table_a : 1000件 table_b : 1000件 select count(*) from table_m m join table_a a on (m.link1=a.id) join table_b b on (m.link2=b.id) Time taken: 42.128 seconds MapJoin メモリにハッシュテーブルを持ってMapフェーズのみでJoinを…

シーケンスファイルテーブルにテキストファイルをloadする方法

シーケンスファイルフォーマットで作ったテーブルにテキストファイルを入れたい時 CREATE TABLE table ( val1 string, val2 string ) STORED AS SEQUENCEFILE likeしてalter tableすればスキーマをハードコードせずに済む CREATE TABLE work_table LIKE tabl…

特殊文字のエスケープシーケンス

HIVEで文字列を|区切りにしたい時 SPLIT('a|bb|ccc','¥¥|') でHIVEコマンドは動くんだけど hive -e " SPLIT('a|bb|ccc','¥¥|') " の時うまく動かない 結局 hive -e " SPLIT('a|bb|ccc','¥¥¥|') " で¥3つつけるとうまいこといけました 詳しいことはわからんけ…

複数のCOUNT

条件の異なる複数のCOUNTを1クエリでやりたい select count(1), count(if(a=0,1,null)), count(if(b>0,1,null)) from test 【SQL】複数の条件のcountを1回の問い合わせでおこなう at softelメモ

HIVEでgroup by

selectするカラムをgroup byしないといけない select a,b,c from test group by a する場合 select a,b,c from test group by a,b,c みたいにする select a b count(c) from test group by a,b countやsum等はgroup byしなくてもOK LanguageManual GroupBy -…

HIVEのテーブル定義の確認

LanguageManual DDL - Apache Hive - Apache Software Foundation テーブル定義の確認方法 HIVEで作成したテーブルのファイルフォーマットや構成を確認したい場合 hive > desc [ extended / formatted ] テーブル名 extendedで詳細説明表示 formattedで見や…

Hiveいろいろ

hiveめも Hive SQL テーブル作成 CREATE TABLE [テーブル名] (名前 型,名前 型...) パーティション PARTITIONED BY (名前 型) ファイルフォーマット ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY ' ' tsv形式 ファイル形式 STORED A…