The Dabsong Conshirtoe

技術系の話を主にします。

PyConJP 2016で「Pythonで入門するApache Spark」を話した

1ヶ月近く過ぎてしまいましたが、今年のPyConJPで、「Pythonで入門するApache Spark」というタイトルでスピーカーを務めさせていただきました。 資料 Jupyterコード 動画 PyConJPには参加者として2012年くらいから参加していましたが、スピーカーとして参加…

SparkのShuffleについて調べてみる (4:Shuffle Readの実装探検)

前回の記事では、SparkのShuffle Writeの実装を追ってみました。 今回は、Shuffle Readの実装について調べていきたいと思います。(前回と同じく今回も個人的な理解の促進のためにこの日記を書いています。) Shuffle Read Shuffle Readは、Shuffle Writeに…

SparkのShuffleについて調べてみる (3:Shuffle Writeの実装探検)

前回の記事では、SparkのShuffleについて、Physical Planから見た内容についてまとめました。 今回は、実行時の観点からのShuffle Writeについて調べていきたいと思います。(前回と同じく今回も個人的な理解の促進のためにこの日記を書いています。) 実行…

SparkのShuffleについて調べてみる (2:Physical Plan)

前回の記事では、SparkのShuffleについての概要と、Logical Planから見たShuffleについてまとめました。 今回は、Physical Planから見たShuffleについて調べていきたいと思います。(前回と同じく今回も個人的な理解の促進のためにこの日記を書いています。…

「詳解Apache Spark」刊行

技術評論社から「詳解Apache Spark」が刊行されました! www.amazon.co.jp 今回、私は内容のレビューという形でこの本の出版に関わらせていただきました。 総評 Apache Sparkについてなかなか網羅的にまとめられている良本です。Sparkは情報が出てきていると…

低レベルな技術も大事ですよね。

昔お世話になった方が書いていたので読んでみました。 www.wantedly.com 感想を適当に。 低レベルな技術を身につけよう マネージドサービスや、高レベルなAPIを備えたミドルウェアに囲まれて生きている我々には耳の痛い話です。 全員がLinuxカーネルについて…

SparkのShuffleについて調べてみる (1:概要とLogical Plan)

Sparkでは、reduceByKeyやgroupByKeyのような特定の処理を行う場合、シャッフルと呼ばれる処理が実行されます。 これの詳細について自分なりにある程度詳細な理解がしたかったのでまとめてみます。 Sparkのバージョンは1.6.1です。 SparkでのShuffleの概要 S…

Spark1.6 - Datasetの導入とメモリ管理の変更

spark1.6がリリースされました。 Spark 1.6.0 released | Apache Spark 詳しい変更点は上記を見ていただくとして、ここではDatasetとメモリ管理方式の変更について紹介します。 メモリ管理の変更 Spark1.6ではメモリ(ヒープ)の管理が柔軟になり、より効率…

Scala占い

あけましておめでとうございます。 恒例の占い企画です。 2013年はPython、2014年はHaskell、2015年はGoで占いをしました。今年はScalaです。 scala> import scala.util.Random import scala.util.Random scala> Random.shuffle(List("大凶", "凶", "大吉", …

Kafkaのパーティンション数を決める時に考慮すること

kafkaのパーティション数を選択する際に考慮する点について、kafka作者のブログにまとめられていました。 How to choose the number of topics/partitions in a Kafka cluster?blog.confluent.io 自身の理解のために、ちょっとまとめてみようと思います。 ※…

spark-summit 2014のSpark Streamingのお題をやってみる

最近はSparkにお熱ということで、spark-summit 2014で催されたSpark StreamingでTwitterのタイムラインからハッシュタグの出現頻度を抽出する、というお題をやってみたいとおもいます。 spark-summit 2014のhands on資料 Stream Processing w/ Spark Streami…

Go占い

go

あけましておめでとうございます。一昨年はpython, 去年はHaskellだったので今年はGoで占いします。以下の.goを作ります。 // lottery.go package main import ( "fmt" "math/rand" "time" ) func main() { rand.Seed(time.Now().Unix()) values := []string…

PyconJP 2014に参加した

毎年恒例pyconに参加しました。 今年は例年に比べ機械学習や数理系の話題が多く、自分自身も業務で最近はこの辺に触ることが多かったので嬉しい内容でした。 内容は、1セッションの時間が30分ということもあり、使っているライブラリの紹介や入門内容的なも…

haskellの勉強として、twitter apiライブラリを書いてみた

すごいH本をひと通り読んだので次は自分でコードを書いてみようと思い、Twitter APIのライブラリを適当な感じで書いてみました。Attsun1031/birdwatcher · GitHub 使い方 import Web.Birdwatcher main = do user <- users_show [("screen_name", "__Attsun__…

pythonの正規表現における先頭・末尾マッチ

こんなエントリーを見ました。正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう | 徳丸浩の日記へー、知らなかったなー、pythonではどうなんだろうなー、と思って試してみたメモ。バージョンは3.3。 \z(小文字)ではなく\Z(大文字) R…

Haskell占い

あけましておめでとうございます。 去年はpython占いしたので今年はHaskell占いします。 -- ghciで実行(letとか省いてます) import System.Random choice :: [String] -> Int -> String choice choices seed = (choices !!) . fst $ randomR (0, length ch…

cliffとその実装

python advent calendar 15日目の記事です。 以前から気になっていたcliffについて調べてみました。 ライブラリやフレームワークのコードを読むのが最近のマイブームなので、使い方とかは適当に流してcliffがどのような実装構成になっているか見てみたいと思…

venusianライブラリの実装

デコレータの実行を遅延させる仕組み。デコレートされた関数のテストがしやすくなったりする。 メタ情報を付与するだけのアノテーションのようにデコレータを使うことができそう。 pyramidのview_config関数で使用されている。 http://docs.pylonsproject.or…

ミクロな可読性とマクロな可読性

コードにおいて最も重要なことは何か?と問われれば、「可読性」だと答えます。 とにかく読みにくいコードは嫌だ。なんといっても醜いので生理的に不快。 では可読性とは何か?と考えてみたところ、2つのタイプがあるように思いましたので、ここではそれを書…

「オブジェクト指向でコードが書けるようになろう」に参加して来ました

「オブジェクト指向でコードが書けるようになろう」に参加して来ました。会を通して考えることがあったのでメモ。 設問 内容は、事前に出題されていたCodeIQの設問「クラス名を考えてみよう」について数人で議論しました。 設問は以下(いろいろはしょってま…

何をオブジェクト化しないか

設計において何をオブジェクト化するか、について考えることがあったのでメモ。 何をオブジェクト化するか 通常、設計においてはソフトウェアの仕様から「何をオブジェクト化するか」を考えます。「オブジェクト化する」とは、ソフトウェアの主要な関心事に…

dotcloudにRailsをデプロイ

dotcloudが楽しそうなので使ってみました。 アプリケーション作成 cd $HOME/src rails new myapp DBはmysql想定です。 dotcloudでアプリケーション作成 dotcloudにでサインアップしてください。サインアップしたらダッシュボードでcreate a new application…

SQLアンチパターン「ランダムセレクション」の補足(でもないけど)

DB

解決策③「すべてのキー値のリストを受けとり、ランダムに 1 つを選択する」では、当然の話だけどトランザクションの考慮も必要ですよねって話。なんだか書いてて当たり前すぎて消そうかと思ったけどもったいないので公開します笑例えば以下のような手順をと…

pythonの日時系操作まとめ

プログラミングをしていれば、日時系の操作をする機会ってかなり多いですよね? 何日前を計算したり、文字列を日時オブジェクトにしたりその逆をしたり、曜日や月末日が欲しかったり。自分が忘れっぽいのか、この辺の操作はすぐ忘れてしまい何度もググってし…

へび年なのでpythonで占い

あけましておめでとうございます!今年はへび年なのでpythonで占いしてみますね。 >>> import random >>> print random.choice([u'大吉', u'中吉', u'マジ吉', u'凶', u'大凶']) 中吉 悪くないですね! 今年もよろしくお願いします。

PythonのGood Parts

pythonを使い始めて1年半ほどになります。ここらで、pythonの良いと感じたとこをまとめてみよう。 1. リスト内包表記 リスト内包表記とは、以下のようなものです。 # 通常のリスト生成 r = [] for i in range(100): r.append(i) # リスト内包表記 r = [i fo…

DevLove2012に行ってMyTDDを見直そうと思った

tdd

DevLove2012に行って来ました。 登壇者の皆さん、スタッフの皆さん、参加者の皆さんお疲れ様でした!さて、2日間ぶっ通しでたくさん中身の濃いセッションが行われましたが、僕にとって今回のDevLoveは自分がやってきたTDDを見直すきっかけとなりましたので…

Backbon.jsのextendの仕組み

Backbone.js Advent Calendarの13日目を担当しますAttsun_1031です。普段はpythonとjs使ってます。Backbone.js使いでもないんですが、javascriptでコード再利用のパターンを検討している時にBackbone.jsのextendがヒッジョーに参考になったので、その仕組み…

ぼくのかんがえたさいきょうのひろしまとうようかーぷ

まずはじめに僕は中日ファンです。 でも、広島にはすごい選手がたくさんいたと思います。 ということで、広島歴代最強の打線を組んでみます。1. 高橋慶彦(遊) 2. 正田耕三(二) 3. 緒方孝市(右) 4. 山本浩二(中) 5. 前田智徳(左) 6. 水谷実雄(一)…

プロフェッショナルってなんだろう

DevLoveのAdvent Calendar2012で「プロフェッショナル」をテーマにしたブログを皆さん書いておられるので、僕も良い機会だしプロフェッショナルとは何か、ということについて自分なりに考えてみました。 http://devloveblog.wordpress.com/professional-adve…