AMP Campをひと通りさらってみる:第2回 Data Exploration Using Spark
Data Exploration Using Sparkのメモ
- http://localhost:4040 で管理ツールが確認できる
- 2列目が言語を表しているのでそれを抽出したいという例でcacheを使う
- reduceByKeyの第2引数はreducerの数
- collectメソッドはRDDをArrayに変換している
動画のメモ
AMP Camp 5: SparkSQL - Michael Armbrust - YouTube
- どちらかというとSparkSQL押しな内容
- schemaRDDの話
- SparkSQLは1.2からHive/Json/Panquetなどにも対応。これはけっこう良さそう
- カラム指向でメモリ上にスキーマを保持
Spark Programming Guideのメモ
- Sparkアプリケーションはdriver programから構成され、ユーザーのmain関数といくつかのparallel operatorを実行する
- クラスターのノード上で並行処理ができる分割された要素のコレクションであるRDD(Resilient Distributed Dataset)
- 再利用を目的としてメモリ上にRDDを保持させることができる
- 並列処理時に利用されるshared variables
- デフォルトでは、Sparkは異なるノードの一連のタスクとして並列に関数を動かした時、関数内で利用される各変数のコピーを各タスクに送る
- Sparkがサポートするshared variables
- broadcast variables:全てのノード上のメモリに値をキャッシュさせるために利用される変数
- accumulators:カウンターや合計のように単純に"足し合わせる"ための変数
Linking With Spark
Initializing Spark
- 初めにすべきことはSparkContextオブジェクトを作成すること
- SparkContextはクラスターにどのようにデータにアクセスするかを教える
- SparkContextオブジェクトを作成するに辺り、アプリケーションの情報を含んだSparkConfオブジェクトを作成する
- JVM毎に1つのSparkContextがアクティブにできる
- 新しいSparkContextを作りたければstop()を行わなければならない
- setAppNameにはClusterUI上に表示するアプリケーション名を渡す
- setMasterにはここの値を色々入れる。とりあえずlocal
Using the Shell
- 起動時にscという特別なSparkContextオブジェクトが作られている
RDD
その他
やっぱりRDDがポイントそうですね。