presto/hiveクエリ変換

prestoでクエリを書いてあとでバッチ化するためにhiveに書き換えるというのはよくある話なので変換ルールをメモっておく。
prestoの方が機能的にリッチなんですが、安定性を考えるとバッチではhiveをうちの環境では使ってます。

一番よくつかうのがjson_extract_scalarをget_json_objectに変えることですね。2番目と3番目はそんなに使わないかも。

presto hive
json_extract_scalar get_json_object
cross join unnest lateral view explode
mod pmod

ただprestoとhiveで似ているけれど微妙に挙動が違うケースがあります。
例えばprestoのurl_extract_hostとhiveのparse_url(..., 'HOST')

前者はjava.net.URIを使ってます。
https://github.com/prestodb/presto/blob/master/presto-main/src/main/java/com/facebook/presto/operator/scalar/UrlFunctions.java#L187

後者はjava.net.URLを使ってます。
https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/udf/UDFParseUrl.java#L70

結果としてhiveのparse_url(..., 'HOST')だとandroid-app://xxxみたいなときにxxxを取得できません。

しょうがないのでjava.net.URIを使うようにしたhive udfを作成してそれを使うようにしました。

ロンドン観光

Strata Data Conference London 2018で発表してきたのですが、そのついでにちょっとだけ観光しました。


ウィンザー

グリニッジからの眺め

水上バスからの眺め

フィッシュアンドチップス

アビーロード

FAカップ決勝

エミレーツスタジアム

キューガーデン

エミレーツ・エア・ラインからの眺め

ウィンブルドン

リージェンツパーク

Strata Data Conference in Londonで発表してきた

abstractやスライドは下記からたどれます。

https://conferences.oreilly.com/strata/strata-eu/public/schedule/detail/65222

一度はrejectされたCFPが2週間前になってacceptになったので慌てて準備して発表してきました。

20人ぐらいは来てくれたかな。発表直後には質問が出なくてちょっと寂しかったけど、その後いくつか質問くれたのでよかったです。

英語は正直まだかなり厳しいのですが、発表すると会話しやすくなっていいですね。しかも今回は最後とはいえ初日だったので明日の二日目が気楽です。

基調講演の印象だけ言うとプライバシーだったりGDPRだったりそういう方面にフォーカスが当たっているのかなと思いました。

ロンドンで現金、VISAカード盗難にあった

諸事情でロンドンに一人で来ていて現金、VISAカード盗難したのでメモっておく。
他の人が似たような状況にならないようになればと思います。

ロンドンは治安の良いところだと思っていたのですが、まあこういうことに遭遇してしまったので用心した方がいいですねという話です。

今回、現金とVISAカードを封筒に入れてそれをショルダーバッグの中において使っていました。外ではそれぐらいしか使わないだろうと思って日本で使ってた財布(中に日本円とか免許証とかがある)はホテルにおいてました。

で、気づいたらその封筒がなくなっていたというオチ。紛失の可能性もなきにしもあらずですが、地下鉄で盗られたのかなあと思ってます。ランチ食おうとしてレストランに入って注文した後に気づいた。食った後じゃなくてよかった。オイスターカードという日本でいうSuicaはあったのでホテルに帰ることはできました。

で、クレジットカードを止める必要があるわけですが、そのためのコミュニケーション手段は電話しかないです。
ただ僕の携帯からかけてもつながらず、ホテルの電話を借りてもうまくいかず、ロンドンのVJデスクにかけてそこで教えてもらった電話番号を何個か試してやっとつながりました。コレクトコールがうまくいかず直接、ホテルから日本に国際電話になりました。

三井住友の盗難受付デスクとロンドンのVJデスクの電話番号は下記にあります。
ロンドンのVJデスクは日本語OKですし、今回めんどくさい話を英語でホテルの人にしてもらいました。感謝。
https://www.smbc-card.com/mem/goriyo/kaigai_lost_list.jsp
https://www.smbc-card.com/mem/service/tra/pop/vj_london.jsp

後からわかったのですが、僕はLINE Mobileをつかっていてこれはデフォルトだと国際通話できません。オプション登録する必要があります。登録はwebからできて1日で完了しました。
なのでLINE Mobileユーザで海外に行くときはこのオプションを登録した方が良いと思います。
https://mobile.line.me/plan/option/

もしかしたらLINE Outなら通話できたのかも。

今回の件に関して、思ったのは海外においては電話という手段はネットと比べるとそこまであてにできないなということです。もちろんケースバイケースではありますが。
本人確認が必要だから電話が必要なんでしょうが、電話といっても公衆電話やホテルの電話もあれば携帯電話もあり、携帯電話もキャリアやMVNOによって微妙に差があるので、こうすれば絶対通話できるというものがない気がします。

ネットだったら繋がりさえすれば、デバイスに違いはそんなにないと思いますし、チャットでやりとりできた方が楽ですよねという。

ともあれ、クレジットカードを止めたはいいものの今後お金どうするんだという話ですが、結論から言うと僕はたまたま別途ソラチカカードを持っていてこれでATMから現金引き落とせました。
http://www.to-me-card.jp/campaign/tome_ana/

もしこれができなかったら、VISAカードを緊急発行して現地で受け取るしかなかったと思います。その場合でも3日ほどはかかりますが。なお僕の場合は日本円を持っていたのでそれをポンドに変えておきました。

そういうのが一切ない場合は、ホテルからなんとかしてお金借りてカードくるまで待つ以外の選択肢を思いつきません。あったら共有していただけたら嬉しいです。

ちなみにソラチカカードを作った理由は、私鉄で定期+オートチャージしたいから以前作りました。
ソラチカカードはJCBベースで、JCBカードはぶっちゃけ海外ではほとんど使えないと思った方がいいと思います。

JCBプラザ・ロンドンに行って日本語で説明を聞きましたけど、少なくともロンドンで使える場所は限られているようです。
http://www.jcb.jp/ws/plaza/plaza_london.html

なのになんでATMでおろせたかというとソラチカカードがcirrus対応しているのでcirrusマークがあるATMなら、そこがJCB対応と書かれていなくてもキャッシングできるからです。LINE PayはJCBだけどICチップないのでNG

だらだら書いたのでまとめると、ひとりで海外行くときはクレジットカードは2枚持って別々に管理するべき、カードの種類はVISAとMasterがおそらく最強。LINE Mobileユーザは国際通話できるようにしておく、ですね。

あ、あと暗証番号は忘れないように。日本でクレジットカードの暗証番号入力することがあまりない方は忘れがちなので。

なんというか日本である程度シェアがあるけど海外ではほぼないサービスを使っていて海外でトラブルと厳しいですね。SPOFは避けて二重化大事という話でした。

石垣島へ行ってきた

石垣島へ一人旅してきました - wyukawa’s blog以来3年ぶり2回目の石垣島です。

5/1から6泊7日の旅です。今回はベストイン石垣島に泊まりました。
本当は前回止まったベッセルホテル石垣島にしたかったんですが予約取れず。
でもベストイン石垣島も良かったです。値段安いしコインランドリーあるし。ただ離島ターミナルまで行くとしたらバス使う必要があるのがちょっと面倒でした。

5/1に石垣空港に到着後、バスでホテルまで移動。今回はバス旅行メインかなと思って5日間で2000円乗り放題チケットを買いました。結果的にこれを使い倒した感じになりました。

バスの時刻表は路線バス案内 - 東運輸株式会社にありますし、バスアプリのNAVITIMEを使いつつ下記ブログを参考にしました。実際めっちゃ参考になりました。

バスで巡る石垣島1 徒歩で巡る沖縄ぶらり紀行/ウェブリブログ
バスで巡る石垣島2 徒歩で巡る沖縄ぶらり紀行/ウェブリブログ

ホテルに荷物預けた後すぐに平久保崎へ移動。
フリー乗降区間というのがあり、運転手にいうと、平久保と平野の間の灯台に一番近いところで降ろしてくれます。
降りた時点でだいたい17:10で、その後10分ほど歩くと灯台にたどり着きます。

その後戻ってきたバスに乗って玉取崎へ。平久保崎灯台での滞在時間は10分ほどですが、そんなに長期間滞在する必要もないと思いますし、おそらくこれが一番効率よく時間使えます。

18:19に玉取崎に着くので19:16のバスで帰ります。

5/2は川平湾へ

グラスボートにも乗りました。

5/3は唐人の墓へ

バスで戻って来夏世でランチ
来夏世 (くなつゆ) - 石垣市/沖縄そば [食べログ]
11時開店のちょっと前に行きましたがすでに並んでいました。

その後、鍾乳洞へ

5/4はバスで荒川まで行ってその後歩いてトミーのパンへ行ってパン買った後は米原
トミーのパン - 石垣市/パン [食べログ]
カレーパンとフランスパンを買った。どっちのパンもほどよく固くて美味しかった。
固すぎるのもダメだし、ふにゃふにゃなのもあんまり美味しくないけど良かった。あとカレーパンはちょっと辛かった。

その後、サビチ鍾乳洞へ。こちらもバスの運転手にサビチ鍾乳洞に一番近いところで降ろしてくださいと伝えます。

5/5は鳩間島へ。徒歩で島をぐるっとまわります。道もそんなに舗装されていないので自転車は使いづらいと思います。

5/6は御神崎へ
どうやって行ったかというと崎枝までバスで行ってそこからの5kmはランニングです。
徒歩だと時間かかり過ぎてバスの時間とうまく合わないので走りました。意外と暑くてアップダウンもあったのでちょっとバテた。

5/7は最終日で一旦空港へ行ってロッカーに荷物預けて白保へ

そして帰ってきました。

今回5/2から5/6の晩御飯はすべて島の食べものや南風 (しまのたべものや ぱいかじ) で食べました。
島の食べものや南風 (しまのたべものや ぱいかじ) - 石垣市/沖縄料理 [食べログ]

3年前も行ってうまかったので今回も行きましたが、前回以上に美味しかった気がします。
人気店なので予約したほうがいいです。

おすすめメニューは、カラッと揚げた島豆腐のにんにくじょうゆ、ラフティー、島らっきょう、ゴーヤチャンプルーイカスミチャーハン、です。

掛川・新茶マラソンにいってきた

去年に続いて4回目の参加です。
掛川・新茶マラソンにいってきた - wyukawa’s blog

結果はネットタイムが4時間25分3秒でした。練習不足もあり30km以降失速。

坂もあったし、戦国汁、バナナ、メロン、いちご、オレンジを食べてたせいもある。

今回は腹減ってたのでさらに私設エイドで唐揚げ食った。ごちそうさまでした。

毎回思うけどこの大会は後半の坂があって結構きついです。。。

東京マラソン走ってきた

記録はネットタイムが3:56:57でした。

スタート前に二回トイレ行ったにもかかわらず、スタート待ってるうちに冷えてトイレ行きたくなり6kmあたりでトイレに行きました。まあそれがなかったとしても僕の自己ベスト3:48:00を更新するのは難しかったでしょう。

ラソンのタイムはここ数年停滞気味でシーズンで一回サブ4出せればいい方という感じです。サブ3.75はちょっと遠い。

それはともかく東京マラソンは運営がすごいちゃんとしてました。セキュリティも考慮してて、事前受付で顔写真取ってセキュリティバンドなるものを手に巻きます。これはレース後まで外したらだめで、これを使って選手はGATEに入場します。

どのGATEに入場するかも事前に決まっています。ゴール後の荷物受け取りもちょっと遠いんですが、場所が別れていて、混雑しないように動線をかなり意識している様子があります。

僕は出たことないですが、湘南国際マラソンはこの辺グダグダらしく人が混雑したり荷物受け取りも混乱があるようですが、東京マラソンはそういうのが一切なくすごくシステマティックに運営されていました。

まあそうでなければ3万6千人のランナーをセキュリティを考慮しつつさばけないよね。

欲を言えばスタート前のトイレ増やして欲しい。

コースも見所満載で、浅草寺スカイツリー、東京タワーなどの名所を巡りつつ銀座のど真ん中を走れます。こりゃ他のマラソン大会が勝つのは難しいかも。。ただエイドの食べ物はバナナ、みかん、ミニトマトといったあたりで特色がなく、そこは他の大会、例えばしまだ大井川マラソンとか掛川新茶マラソンとか網走マラソンとかの方が上ですね。