本記事では Apache Spark の学習のアウトプットを行います。
*技術解説ではないため、正誤は問わないでください。
Spark とは
ビックデータ処理のフレームワークであって、スピードや使いやすさ、拡張性等に優れている
使いやすさ→Python,SQL,java など様々なプログラミング言語で実装することが可能
拡張性→S3 や MongoDB, Delta Lake など様々な外部サービスと使用できるようにコネクタが提供されている
Hadoop との違いは?
ビックデータ処理のフレームワークというと Hadoop が有名ですが、SparkはHadoopと何が違うのでしょうか?
特徴 | Apache Spark | Apache Hadoop |
---|---|---|
処理方法 | メモリ内で高速処理 | ディスクを使った遅い処理 |
リアルタイム処理 | 可能 | 不可 |
プログラム言語 | Scala, Java, Python, R, SQL | 主にJava |
使用用途 | 高速なデータ分析や機械学習 | 大量データのバッチ処理 |
Spark は高速な並列処理に焦点を当てており、ストレージと並列処理を分離しています。逆に Hadoop はストレージと並列処理の両方を含んでおり、用途や拡張性に劣るといったことがいえます。
Spark を使用する人・ケース
データの利活用業務
企業には様々なデータがあり、近年それらのデータをAIや可視化、分析を行うことによって利活用する業務が増えています。
これらの業務に関わるデータサイエンティストが使用します。
また、データの利活用に使用するデータはそもそもが活用目的で集められたわけではないためデータを活用可能な形に変換する(キレイに整える)必要があります。
これらをおこなうデータエンジニアが使用します。
中小企業ではこれらの業務は明確に分かれていないこともあり、データエンジニアとデータサイエンティストの両方の業務を行うこともしばし発生します。
Spark を使用することによって使い慣れたプログラミング言語を使用し、1つのエンジンで様々なアプリケーションを構築できます。
更にデータの利活用においては大量のデータを利用するためSpark を使用した並列処理がよりメリットを発揮します。