やばい!PACKTで$10セールやってるぞ!英語できなくても買ってみろ!

www.packtpub.com

たまたま PACKTのサイト見てたら、なんか$10セールをやってる。

こここ、これは!と思って、いくつかポチってしまいました。

 

f:id:suganoo:20170918231233p:plain

まあ、あと数時間で終わってしまうようですけどね....。(2017/09/18 23:00現在)

 

自分はどちらかというと、PACKTの本が好きです。

調べたことないんですが、たまたまなのか、O'ReillyよりPACKTの本の方が

いい本出してるなと感じることがあります。

 

買った本はこれ

www.packtpub.com

これはもともとインプレス社から出てる「Python機械学習プログラミング....」の翻訳元の本。 

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

Python機械学習プログラミング 達人データサイエンティストによる理論と実践 (impress top gear)

 

 これは本当に読みたいなと思ってたんだけど、4000円は高いなと思って躊躇してました。

 

 2つ目はこれ

www.packtpub.com

これもこの翻訳元の本、これも4000円近くして買いあぐねてました。

Deep Learning Javaプログラミング 深層学習の理論と実装 (impress top gear)

Deep Learning Javaプログラミング 深層学習の理論と実装 (impress top gear)

 

 

 

3つ目はこれ TensorFlow関係の本

www.packtpub.com

これも翻訳元がこの本 

TensorFlow機械学習クックブック Pythonベースの活用レシピ60+ (impress top gear)

TensorFlow機械学習クックブック Pythonベースの活用レシピ60+ (impress top gear)

 

 

4つ目はこれ kerasの本

www.packtpub.com

 

今回は機械学習Deep Learningに興味があったので、それ関係を買ってみました。

4つ合わせても4400円くらいでした。

うーん安い、自分の嫌いな電子書籍版といえど、これは安くてお買い得でした。

 

これから読むのが大変ですけどね、まあ、読むかどうかわからないけど

買うことが大事なんですよ!(汗)あはは

 

 

これに限らないことなんですが、技術書は高いなーと思った時に

洋書版を探してみると、かなりお買い得に買えることがありますよー

「Hadoop Application Architectures」を読んでみた。

 

Hadoop Application Architectures

Hadoop Application Architectures

  • 作者: Mark Grover,Ted Malaska,Jonathan Seidman,Gwen Shapira
  • 出版社/メーカー: Oreilly & Associates Inc
  • 発売日: 2015/07/20
  • メディア: ペーパーバック
  • この商品を含むブログを見る
 

 Hadoopに関連する本ってそんなに販売されていません。

思い浮かぶのは、有名な像本とか、NTTの方が書いたHadoopの入門だったり

あとはMapreduceの本だったり。

そもそもHadoop自体の本の流行りが廃れて来たってのもあるでしょう。

で業務でHadoopを使ってるので、もっとHadoopの本を読みたいなと思い

上長にお願いしたら買ってくれました。この本。

 

先に感想を書いてしまうんですが、あんまり面白くない。(申し訳ないけどね)

全体的に総括的なお話のせいか、あーうんそうねーと読み飛ばすところが多かった。

日本円にすると6000円近くするのに申し訳ないなあと思いました。

 

ざっくり感想とポイントごとのまとめ

  • データモデル
  • Hadoopがどういうもので、どんなデータでも入れられて、HDFSがどんなものかっていう話
  • データムーブメント
  • どうやってHadoopにデータを入れ込むかって話
  • FlumeとかSqoopとか使って入れ込みましょう。
  • プロセッシング
  • HadoopのMapreduece機能使って処理します。
  • 他にはSpark使ってもいいね
  • 他にもPig, Impala, Hiveとかいい感じのプロダクトあるよ。
  • 共通Hadoopプロセッシングパターン
  • ここはあんまり印象に残らなかった。
  • データベース的な使い方の時、同じ主キーIDは書き換わるよとか、そんなものだった気がする。
  • グラフ処理をHadoopでやる
  • グラフ処理なら、SparkのGraphXかGiraphを使うといいよ。
  • Giraphはまだ安定してないから、GraphXが良さげ。
  • オーケストレーション
  • Oozie使うといいよ。
  • (Jenkinsじゃダメなのかなと疑問あり)
  • Near-Real Time処理
  • Apache Stormがいいよ。
  • あとはSpark streamingも使うといいよ。
  • ケーススタディ
  • クリックストリーム分析
  • Hadoopにログデータを入れ込んで、あとはImapalaやら何やらでデータ分析していきましょう、な使い方。
  • オーソドックスな使い方の紹介。
  • 不正検出システム
  • Hadoop環境を2つ用意します。
  • 1つ目のクラスターにシステムログをどんどん入れ込んでいきます。
  • クラスター1のHadoopからデータ分析をして、機械学習した分析結果をクラスター2へ入れ込みます。
  • そこでリアルタイムにログが流れているところへ、クラスター2の分析結果を当てはめて不正検出をします。
  • データウエアハウス
  • Hadoopにとにかくログを入れ込みます。
  • データベースのテーブルとかも分析ごとにテーブル作ってデータを入れ込んでいく、みたいです。
  • (↑awsのs3は直接クエリが実行できるAthenaがあったりするんで、もうHadoop基盤を作る重要性も低くなってる気がします。)

もうね、ほぼ内容見てもウンウンって感じだったので、読み飛ばしてしまいました。

読者の対象は、「ビッグデータ使ったことないけど、どんな感じのアーキテクチャになるか知りたい。」「これから0からビッグデータの基盤作る」って人かなという感じがします。

ざっくり感想を書いてみたんだけど、読む労力があるわりには得るものが少なかった。

上長.....申し訳ねえっす。。。 

 

 

なんかネガティブな内容の感想しか書いてないのも、あれだね(失笑)

 

もっといい本があったら紹介したいです。

機械学習の仕事したい~って人ががんばったgithubがすごかった

github.com

 

↑これ 内容がすごい

おれも勉強しよう

pythonでlistの重複を除くにはsetが便利

pythonにはrubyのようにuniq関数は無いようです。

リストの値をsetにして、再度リストにすると
重複が除かれます。

なんで順番くずれるんだろうね。

リストで重複除く

JSONパースのTypeError: string indices must be integersでハマった

jsonパースのところで値を取得しようとしたら、TypeErrorとかのエラーが出た。
なんだこりゃ、全然わかんねーと、かなりもがいてしまった。

SQSからもらうメッセージみてもぜんぜんjson形式として
悪いところはなさそう。
ダブルクオーテーションが悪いのか!?とか思案したが、
全然違うところで解消した。

下記のjsonデータで、"Message"まではjson形式なのに
途中から"Message"の中身が単なるStringになってたのだ。

ためしに
print message["Message"][0]
とかやったら
{
とか出てたし。。。。

なので再度jsonパースして、値を取得して解決しました。

※サンプルは要点だけなので当然足りない部分は頭で補足してください。

json パースでTypeError: string indices must be integer ...

「Apache Spark入門 動かして学ぶ最新並列分散処理フレームワーク」を読んだ

 

Apache Spark入門 動かして学ぶ最新並列分散処理フレームワーク (NEXT ONE)

Apache Spark入門 動かして学ぶ最新並列分散処理フレームワーク (NEXT ONE)

 

 

scalaを勉強してきたし、Hadoopもかかわってるから
sparkのことを知りたいと思いました。

たまたま8月に翔泳社のセールがやっててkindleだと
半額だったので、さっそくポチりました。

内容的には

  • RDDの概念、sparkの特徴、構成、アプリケーションの使い方など、基礎的知識
  • 実践編として実際にファイルから単語の数をカウントしてみたり
  • SparkSQL、Spark streaming、機械学習のための使い方

などが書かれてました。

感想としては、基礎的な知識がわかった感じですが
入り口を広く浅くという感じで物足りなさの印象もぬぐえません。

ちょっと読者層を想像してみたんですが
sparkとかを読む人って、わりと中級以上くらいの人が
読もうとするのではと思います。

  • すでにHadoopを使ってる人がsparkも知りたい
  • データ分析をやってる人がインフラの知識もつけたい
  • ビッグデータのトレンドを追ってて、sparkが流行ってるから知りたい

とかでしょうか。

「プログラミングを最近始めて、sparkにも興味持った」
なんて人は、皆無でしょう。

そうなると、網羅的、基礎的にわかるのもいいのですが
がっつり運用上のところとか、深いアーキテクチャとか、ソースコードたっぷり
とかの内容で、初心者は無視、みたいになってもいいのかなと思いました。

まあ、そもそもタイトルに入門って書いてあるからねえ…。


「詳解 Apache Spark」にも手を出したいなと思ってます。

 


あと個人的な事情ですが、やっぱ技術書はkindleで読むべきじゃないな。
ぜんぜん頭に入ってこないし、どこまで(触った感じ)読んだかわからないし
ちょっと画面触っただけでページがめくれてしまって、読みにくい。。。
kindlはビジネス書だといいんだよな。

 

2か所にあるファイル存在を比較するにはsetが便利

2か所にファイルを保管してて、それらのファイルの存在確認をすることがあった。
具体的に言うと、例えば

  • Webサーバー上にあるファイルと、ローカルに保管したファイルが同じと仮定。
  • それが一致しないことがあるから、数が一致してるかを確認したい。
  • もしくは差分があれば、どちらに、なにが欠けてるかも知りたい。

こんなことたまにないだろうか。

で、さらに、プログラムを書いてるとlistを使うことが多くて
なんとかかんとか、listで存在確認しようとゴリ押ししてたりする。

forで片方のlistからアイテムを取ってきて、もう片方のlistに存在してないこと確認しにいく。

ここで、はっ!としたんだけど、set使えばいいーじゃん

下記がコーディング例

いやーすっきりした。気持ち的にも行数的にも。

setでlistの差分を取る方法

setって使うこと少ないから、すぐ思いつかないんだよなー
あとわざと順番変えたけど、setってデフォルトでソートされるのね