読む・聞く・書く

読んだ本や書いたコードを共有していきます。

Essential PySpark Chap1-2

前回に引き続きessential pysparkの第一章を攻めていく。

Big data processing with Spark SQL and DataFrames

Transforming data with Spark DataFrames

Domain Specific Language (DSL)という操作方法で構築されている

  • immutable
  • 各列はどんなデータ型も取れる
  • 操作はtransformationとactionから構成される
    • Transformations: あるデータフレームの操作が他のデータフレームに影響を及ぼすもの(e.g.. read, select, where, filter, join, and groupBy)
    • Actions: ストレージへの書き戻しが発生するもの(e.g.. write, count and show)

RDDと比較したときの利点

  • Spark SQLが最適な実行プランをいかなる言語でも設定してくれる

Lazy evaluation

遅延評価。その値が必要になった時、アクションが実行されるときに計算されるというやつ。

永続化やキャッシュを参照するようにすると計算を保持させることもできる。

実行計画の最適化に用いられるらしいがいまいち理解できていない…。

Summary

ここらへんは基礎的な内容。実際にコードをバカバカ叩くのは次くらいからか。

環境構築

PySparkの環境構築にはdocker hubからpyspark-notebookイメージを引っ張ってきて使っている。https://hub.docker.com/r/jupyter/pyspark-notebook

マウントセッティングもなんとかできたのでかなり便利に使えている。本当はdockerコマンドの意味も理解しないとなのでpysparkがある程度片付いたらそちらにも手を出します。