【分散処理】Apache Spark ~ 入門編 ~

■ はじめに

https://dk521123.hatenablog.com/entry/2019/09/13/212325

の続き。

Apache Spark について調べてみた

目次

【1】Apache Spark
【2】公式サイト
【3】動画
【4】環境設定
【5】関連用語
 1)RDD
 2)Spark SQL
 3)PySpark

【1】Apache Spark

* カリフォルニア大学バークレー校で開発
* プログラム言語:Scala

対応OS

* Windows
* MacOS
* Linux

サポート言語

* Scala
* Java
* Python
* R

【2】公式サイト

https://spark.apache.org/

【3】動画

Udacity で以下の動画がある

Spark
https://www.udacity.com/course/learn-spark-at-udacity--ud2002

【4】環境設定

以下の関連記事を参照のこと

https://dk521123.hatenablog.com/entry/2019/09/18/214814

【5】関連用語

1)RDD

* RDD : Resilient Distributed Dataset(=耐障害性分散データセット)
 cf. Resilient (レジリエンス) : 復元力

* 不変(immutable)で分割されたコレクション

* 実行できるメソッドは「変換」と「アクション」の2種類

変換 (Transformations)

* データセットの値を変換するメソッド
 ex. map(), filter(), groupByKey(), reduceByKey()

* 変換処理は、遅延評価 (Lazy evaluation) というコンセプトで実行される
 => Sparkは、DAGを用いて処理を決める
 => DAG (Directed Acyclic Graph、有向非巡回グラフ) の詳細は、
  以下の関連記事を参照のこと

https://dk521123.hatenablog.com/entry/2019/10/10/223018

【遅延評価の利点】
* 結果として必要なデータだけで計算することにより
 大規模データでの計算/IOを必要最低限にする

アクション (Actions)

* データセットをまとめる計算を行うメソッド
 ex. reduce(), collect(), count(), first()

2)Spark SQL

Spark(RDD:Resilient Distributed Dataset)の操作を
SQL(SELECT文)で行う

3)PySpark

Sparkを実行するためのPython API

詳細は、以下の関連記事を参照。

https://dk521123.hatenablog.com/entry/2019/11/14/221126
参考文献
https://mmtomitomimm.blogspot.com/2018/01/jupyterpyspark.html

参考文献

https://www.atmarkit.co.jp/ait/articles/1608/24/news014.html
https://www.atmarkit.co.jp/ait/articles/1608/24/news014_3.html
https://it.impress.co.jp/articles/-/12562
https://yohei-a.hatenablog.jp/entry/20180916/1537085186

関連記事

Apache Spark ~ 環境設定 / Windows編 ~
https://dk521123.hatenablog.com/entry/2019/09/18/214814
PySpark ~ 環境構築編 ~
https://dk521123.hatenablog.com/entry/2019/11/14/221126
分散処理フレームワーク
https://dk521123.hatenablog.com/entry/2019/09/13/212325
Hadoop ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2019/09/15/100727
Hive / HiveQL ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2019/11/25/235219