やったもん勝ち

主にプログラミングのこと。生産性向上の某とかも。

備忘録

AWS lambdaのpythonで並列実行する方法

普通の並列実行は、こちらを参考にして実装できました。 qiita.com lambdaで実行するとなると若干修正しました。 import time from multiprocessing import Process, Pipe hoge_list = [1, 2, 3, 4] def wait_and_print(i, *args, **kwargs): print(f'start …

よく使うpython3のスニペット集(随時更新)

pythonスニペット unixtime⇔datetimeの変換 import datetime # datetimeのnowをつくる now = datetime.datetime.now() # => datetime.datetime(2018, 6, 20, 12, 37, 50, 642687) # datetiemをunixtimeに変換 unixtime = int(now.strftime('%s')) # => 15294…

AWS Lambdaでdatetimeを使うときにコンテナが再利用される罠

lambdaのpythonでdatetimeを使おうとしてコードを書いて、いざ動かしてみると、どうもちょっとおかしい。 明らかにおかしいというよりは時折おかしくなることがある。 これが逆に厄介でした。 原因は、lambdaの実行コンテナのコンテキストは再利用されること…

AWS SSMセッションマネージャーでvimのインサートモードから抜けられない問題

会社でAWS SSMを使って開発をしてたのが初めてだったのですが、罠にハマりました。 ブラウザからsshつなぐっていう感じの認識で、あまり深い理解はしていないのですが、とりあえずsshみたいに使えるもんだと思ってやってましたが、vimでハマりました。 vimで…

pythonのaws-sdkのboto3を使ってライブラリのコードをちゃんと読んでみる①

boto3とは? pythonのaws-sdkです。 他の言語のaws-sdkは大体aws-sdkみたいな名前で公開されていることが多いのですが、なぜかpythonだけboto3っていう名前です。 boto3.amazonaws.com 個人的にはこのドキュメントすごい読みやすくて好きなライブラリです。 …

aws-cliを使ってs3にgz圧縮ファイルをアップロードするときの注意点

aws-cliを使ってローカルからファイルをアップロードしようとしたのですが、csv.gzなファイルをアップロードするときにちょっとハマってしまったのでメモとして残しておきます。 まずはcsvファイルを用意します。 $cat sample.csv hoge,fuga foo,bar $ gzip …

AWSのEC2でAirflow実行環境を構築してチュートリアルを動かしてみる

今、airflowが熱いらしいです。 そこら編の解説は他の有用や記事に任せて、とりあえずチュートリアル動かしてみた備忘録を残しておきます。 AWS環境 Amazon Linux 2 セキュリティグループは sshの22番 ウェブコンソールの8080番 を開けておきます 大体チュー…

いい加減DockerとECSを整理する①

Dockerの概念が腑に落ちないこと早1年。 そろそろこれじゃだめだって思い始めて、復習する万。 install方法は割愛しておくことにする。 というか忘れてしまった。 Mac High Sierra 10.13.5 $ docker -v Docker version 17.12.0-ce, build c97c6d6 docker-com…

AWS EMRを使ったhiveのチュートリアル

やりたいこと 以下のような3つの項目を持ったjsonファイルがあります。 id, cookie, date 基本的にはidはcookieと一対一の関係にありますが、たまにあるcookieに対して同じidが振られていることがあります。 つまり、cookieは完全にユニークですが、idには重…

AWSのEMRを使ってHiveの基本的な使い方を確認しておく備忘録

Hiveとは? Hiveとは? Hive(ハイブ)とは、オープンソースの大規模分散計算フレームワークHadoop上で動作するデータウェアハウス(DWH)向けのプロダクトです。 Hiveとは | クラウド・データセンター用語集/IDCフロンティア とあります。 大規模なデータ処…

rubyの配列、ハッシュ、シンボルあたりを整理する備忘録

ハッシュ、シンボル、配列あたりがごちゃごちゃしているので、まとめる。 備忘録です。 配列 シンプルな配列 array = [1,2,3,4,5] [1, 2, 3, 4, 5] 要素を追加したり、色々なメソッドを使えます。 array.push(10) [1, 2, 3, 4, 5, 10] 色んなものが配列の要…

rubyで配列、ハッシュに対する処理をするreduceについてのまとめ備忘録

reduceとは reduceはinjectの別名。 配列やハッシュを次々に処理していくときに使えるやつ。 早速例示して使ってみる。 まず配列について # 初期値なしで、配列の中身を順に足していく。 [1,2,3,4,5].reduce() {|sum, i| sum + i } 15 # 初期値を設定できる …

rubyで配列、ハッシュに対する処理をするmapについてのまとめ備忘録

rubyのmapなどについて使い方をまとめてみます。 map 配列やハッシュの各値に対して同じ操作をしていく。 配列について # 各値を2倍にする [1,2,3,4,5].map {|i| i*2} [2, 4, 6, 8, 10] # 何もしない [1,2,3,4,5].map{|i| i} [1, 2, 3, 4, 5] # 全部1にする …