入門PySpark PythonとJupyterで活用するSpark2エコシステム

Apache SparkをPythonから使うための方法とノウハウを網羅!

このような方におすすめ

Pythonからビッグデータを扱う、データ処理、データサイエンスに携わる技術者。Pythonでデータ処理をしていて、扱うデータのスケールを大きくしたい人。Spark 2.0について知りたい人全般。
  • 著者Tomasz Drabas、Denny Lee/Sky株式会社 玉川 竜司
  • 定価3,740 (本体3,400 円+税)
  • B5変 328頁 2017/11発行
  • ISBN978-4-87311-818-5
  • 定価
  • ポイント0
  • 数量

※本体価格は変更される場合があります。
※通常2〜3営業日以内で発送いたします。
※取寄が可能な場合もございますのでお問合せください。

  • 概要
  • 主要目次
  • 詳細目次

PySparkとはSparkを実行するためのPython APIです。インメモリ(ソフトウェアを実行する際、使用するプログラムやデータのすべてをメモリ上に読み込み、ハードディスクなどの外部記憶装置を使わないこと)で高速に分散処理ができるフレームワークで、MLlibという機械学習ライブラリが利用できることなどから注目されています。本書は、Apache SparkをPythonから使うための方法とノウハウを書いた書籍です。

https://www.ohmsha.co.jp/book/9784873118185/

    
序文
訳者まえがき
はじめに

1章 Sparkを理解する
1.1 Apache Sparkとは
1.2 SparkのジョブとAPI
1.2.1 実行のプロセス
1.2.2 耐障害性分散データセット(RDD)
1.2.3 DataFrame
1.2.4 Dataset
1.2.5 Catalyst Optimizer
1.2.6 Project Tungsten
1.3 Spark 2.0のアーキテクチャ
1.3.1 DatasetとDataFrameの統合
1.3.2 SparkSession
1.3.3 Tungstenフェーズ2
1.3.4 Structured Streaming
1.3.5 継続的アプリケーション
1.4 まとめ

2章 耐障害性分散データセット
2.1 RDDの内部動作
2.2 RDDの生成
2.2.1 スキーマ
2.2.2 ファイルからの読み込み
2.2.3 ラムダ式
2.3 グローバルとローカルのスコープ
2.4 変換
2.4.1 .map(...)変換
2.4.2 .filter(...)変換
2.4.3 .flatMap(...)変換
2.4.4 .distinct(...)変換
2.4.5 .sample(...)変換
2.4.6 .leftOuterJoin(...)変換
2.4.7 .repartition(...)変換
2.5 アクション
2.5.1 .take(...)メソッド
2.5.2 .collect(...)メソッド
2.5.3 .reduce(...)メソッド
2.5.4 .count(...)メソッド
2.5.5 .saveAsTextFile(...)メソッド
2.5.6 .foreach(...)メソッド
2.6 まとめ

3章 DataFrame
3.1 PythonからRDDへの通信
3.2 Catalystオプティマイザ再び
3.3 DataFrameによるPySparkの高速化
3.4 DataFrameの生成
3.4.1 JSONデータの生成
3.4.2 DataFrameの生成
3.4.3 一時テーブルの生成
3.5 シンプルなDataFrameのクエリ
3.5.1 DataFrame APIでのクエリ
3.5.2 SQLでのクエリ
3.6 RDDとのやりとり
3.6.1 リフレクションによるスキーマの推定
3.6.2 プログラムからのスキーマの指定
3.7 DataFrame APIでのクエリの実行
3.7.1 行数
3.7.2 フィルタ文の実行
3.8 SQLでのクエリ
3.8.1 行数
3.8.2 where節でのフィルタの実行
3.9 DataFrameのシナリオ ―定刻フライトのパフォーマンス
3.9.1 ソースデータセットの準備
3.9.2 フライトパフォーマンスと空港の結合
3.9.3 フライトパフォーマンスデータの可視化
3.10 Spark Dataset API
3.11 まとめ

4章 データのモデリングの準備
4.1 重複、計測値の欠落、外れ値のチェック
4.1.1 重複
4.1.2 計測値の欠落
4.1.3 外れ値
4.2 データに馴染む
4.2.1 記述統計
4.2.2 相関
4.3 可視化
4.3.1 ヒストグラム
4.3.2 特徴間の関係
4.4 まとめ

5章 MLlib
5.1 MLlibパッケージの概要
5.2 データのロードと変換
5.3 データを知る
5.3.1 記述統計
5.3.2 相関
5.3.3 統計的検定
5.4 最終のデータセットの生成
5.4.1 LabeledPointsのRDDの生成
5.4.2 トレーニングおよびテストデータの切り出し
5.5 幼児の生存率の予測
5.5.1 MLlibでのロジスティック回帰
5.5.2 最も予測可能な特徴のみを選択する
5.5.3 MLlibでのランダムフォレスト
5.6 まとめ

6章 MLパッケージ
6.1 MLパッケージの概要
6.1.1 Transformer
6.1.2 Estimator
6.1.3 パイプライン
6.2 MLによる乳幼児の生存確率の予測
6.2.1 データのロード
6.2.2 transformerの生成
6.2.3 estimatorの生成
6.2.4 パイプラインの生成
6.2.5 モデルのフィッティング
6.2.6 モデルのパフォーマンス評価
6.2.7 モデルのセーブ
6.3 パラメータのハイパーチューニング
6.3.1 グリッドサーチ
6.3.2 トレーニングおよび検証データの切り分け
6.4 PySpark MLのその他の特徴
6.4.1 特徴抽出
6.4.2 クラシフィケーション
6.4.3 クラスタリング
6.4.4 回帰
6.5 まとめ

7章 GraphFrames
7.1 GraphFramesの紹介
7.2 GraphFramesのインストール
7.2.1 ライブラリの作成
7.3 flightsデータセットの準備
7.4 グラフの構築
7.5 シンプルなクエリの実行
7.5.1 空港とフライト数の計算
7.5.2 データセット中での最大のディレイを求める
7.5.3 遅延したフライトおよびオンタイム/繰り上げフライト数の計算
7.5.4 シアトル発で最も大きくディレイしそうなフライトは?
7.5.5 シアトル発で最も大きくディレイしそうなフライト先の州は?
7.6 頂点の次数
7.7 最も経由が多い空港の計算
7.8 モチーフ
7.9 PageRankによる空港ランキングの計算
7.10 最も人気のあるノンストップフライトの計算
7.11 幅優先検索の利用
7.12 D3によるフライトの可視化
7.13 まとめ

8章 TensorFrames
8.1 ディープラーニングとは何か
8.1.1 ニューラルネットワークとディープラーニングの必要性
8.1.2 特徴エンジニアリングとは何か?
8.1.3 データとアルゴリズムの架け橋
8.2 TensorFlowとは何か
8.2.1 pipのインストール
8.2.2 TensorFlowのインストール
8.2.3 定数による行列の乗算
8.2.4 プレースホルダを使った行列の乗算
8.2.5 議論
8.3 TensorFrames
8.4 TensorFramesのクイックスタート
8.4.1 設定とセットアップ
8.4.2 TensorFlowによる既存の列への定数の追加
8.4.3 ブロック単位のreduce処理の例
8.4.4 ベクトルからなるDataFrameの構築
8.4.5 DataFrameの分析
8.4.6 全ベクトルの要素別の合計値および最小値の計算
8.5 まとめ

9章 Blazeによるポリグロットパーシステンス
9.1 Blazeのインストール
9.2 ポリグロットパーシステンス
9.3 データの抽象化
9.3.1 NumPy配列の利用
9.3.2 pandasのDataFrameの利用
9.3.3 ファイルの利用
9.3.4 データベースの利用
9.4 データの処理
9.4.1 列へのアクセス
9.4.2 シンボリック変換
9.4.3 列の操作
9.4.4 データの集計
9.4.5 結合
9.5 まとめ

10章 Structured Streaming
10.1 Spark Streamingとは何か?
10.2 Spark Streamingの必要性
10.3 Spark Streamingアプリケーションのデータフロー
10.4 DStreamを使ったシンプルなストリーミングアプリケーション
10.5 グローバル集計の簡単な例
10.6 Structured Streaming
10.7 まとめ

11章 Sparkアプリケーションのパッケージ化
11.1 spark-submitコマンド
11.1.1 コマンドラインパラメータ
11.2 プログラムによるアプリケーションのデプロイ
11.2.1 SparkSessionの設定
11.2.2 SparkSessionの生成
11.2.3 コードのモジュール化
11.2.4 ジョブの投入
11.2.5 実行のモニタリング
11.3 Databricksのジョブ
11.4 まとめ

付録A Apache Sparkのインストール
A.1 動作要件
A.2 JavaとPythonがインストールされていることの確認
A.3 Javaのインストール
A.4 Pythonのインストール
A.5 PATHの確認と更新
A.6 LinuxおよびMacでのPATHの変更
A.7 WindowsでのPATHの変更
A.8 Sparkのインストール
A.9 MacおよびLinux
A.9.1 ソースコードのダウンロードと展開
A.9.2 パッケージのインストール
A.9.3 Mavenのインストール
A.9.4 sbtでのインストール
A.9.5 インストールの確認
A.9.6 環境の移動
A.9.7 最初の実行
A.10 Windows
A.10.1 アーカイブのダウンロードと展開
A.11 PySparkでのJupyter
A.11.1 Jupyterのインストール
A.11.2 環境のセットアップ
A.11.3 MacおよびLinuxの場合
A.11.4 Windows
A.11.5 Jupyterの起動
A.11.6 PySparkでのHelloWorld
A.12 クラウドへのインストール
A.13 まとめ

付録B 無料で利用できるクラウド上のSpark
B.1 Databricks Community Edition
B.1.1 ノートブックとダッシュボード
B.1.2 接続
B.1.3 ジョブとワークフロー
B.1.4 クラスタの管理
B.1.5 エンタープライズセキュリティ
B.1.6 Databricksの無料サービス
B.1.7 サービスへのサインアップ
B.1.8 Databricksの統合ワークスペースでの作業
B.1.9 DatabricksガイドのGetting Started with Apache Spark
B.1.10 次のステップ
B.2 Microsoft Azure HDInsightの利用
B.2.1 Azure HDInsightの無料サービス
B.2.2 サービスへのサインアップ
B.2.3 Microsoft Azureポータル
B.2.4 Azure HDInsight Sparkクラスタのセットアップ
B.2.5 Sparkのコードの実行
B.2.6 データの管理
B.2.7 セッションの設定
B.2.8 コードの実行
B.2.9 Yarnでのジョブの実行モニタリング
B.3 まとめ

参考文献
索引