Apache Spark とは
Apache Sparkとは
Apache Sparkは巨大なデータの処理を高速に分散させるためのオープンフレームワークです。
対応OSはWindows、macOS、LinuxとほぼすべてのOSに対応しています。
プログラミング言語はScala、Java、Python、R言語に対応しています。
Apache Sparkの特徴
Apache Sparkを導入すると分散処理をする際にややこしく難しい部分をうまく抽象化しているので、実際に自分でコードを記入する際は簡単なコードで実行が可能です。
テラバイトの上であるペタバイト級のデータであっても分散処理が可能です。
1台のPCでは長時間かかる処理であってもApache Sparkを導入し複数のPCで処理をすることで高速処理を行うことができます。
機械学習などを行う場合でもApache Sparkは線形回帰やロジスティック回帰、クラスタリングなど、一般的な機械学習のアルゴリズムも備えています。
Apache SparkはWindows環境でも動作するものの、Windows環境のSparkは日本語文字列の扱いが得意ではありません。
Hadoopとの違い
Apache Sparkが公開されるまではHadoopという分散処理のフレームワークが有名でした。
Hadoopには同じストレージに何度もアクセスしないといけなかった処理などがあり非常に便利なのですが、少し無駄がありそのような点を改善したのがApache Sparkになります。
Apache SparkのRDDとは
Apache SparkではRDDと呼ばれる部分故障への耐性を考慮した分散コレクションに対して典型的なデータ処理を繰り返すことで目的の結果を得ることができ、複雑な処理を少ないジョブ数で実現し、RDDごとに中間データをその都度出力しないのでHDFSなどの外部ストレージへのI/Oが抑えられます。