今さら聞けないシリーズ - はじめてのApache Spark

この記事は以下のウェビナーのダイジェスト版になります。より詳しくは以下のウェビナー(オンデマンド)を参照ください。

https://www.databricks.com/jp/p/webinar/beginner-series-spark

# ウェビナー概要

ビッグデータのための分散処理フレームワークであるApache Sparkは今や大量ログデータ解析にとどまらず、Deep Learningを含む機械学習からSQLクエリエンジンとしてデータウェアハウス用途など様々な場面で活用されています。今回のセッションでは、Apache Sparkが誕生して現在に至るまでの流れ、何ができるのかの全体像・どこで使えるのかの具体例を実際のコードを交えて説明いたします。”Spark”は耳にしたことあるけど、どこから始めていいかわからない、何がそんなにいいのかわからない、などの疑問にお答えします。

# 対象

* Sparkの名前だけは聞いたことがあり、詳細を知りたい方
* OSS Sparkとの違いを知りたい方
* OSS Pandasとの違いを知りたい方

# TL;TD (目次)

Sparkをはじめるにあたって、よく聞かれる質問を通して、全体像をつかんでいきます。

1.  Sparkはどうやって生まれたのですか? 👉 Hadoop/Map Reduceの弱点補完で生まれた。
2.  Sparkは何に使えるのか? 👉 大量ログ解析、ELT、機械学習、ストリーミング、など多種多様。
3.  Map/Reduceで書かないといけないのか? 👉 Dataframeが使える。
4.  開発するのに使える言語は? 👉 Python, Scala, Java, SQL, R。
5.  Pandasと何が違うか? 👉 Pandasはシングルコンピュート、Sparkは分散コンピュート。
6.  Spark/Databricksとデータウェアハウス(DWH)の関係? 👉 DWHとしても使われている。
7.  今あるPythonコードを全て書き換えないといけないのか? 👉 いいえ、UDFでコード資産を活かせる。
8.  機械学習でSparkはどう使えるのか? 👉 前処理、モデル学習、推論をSparkで高速化できる。
9.  Sparkはチューニングが必要か? 👉 大部分を自動でやってくれる。
10. Sparkが接続できるデータソースは? 👉 JDBC、ファイルは直結。それ以外はコネクタで接続。
11. Sparkはバッチ処理のみ? 👉 ストリーミング処理もカバーできる。
12. Sparkの環境構築はそうすればよいのか? 👉 クラウドサービスがおすすめ。
13. クラウドのSparkサービスを使うと何が嬉しいのか? 👉 スケーラビリティ・弾性をフルに享受。
14. DatabricksのSparkを使うと何が嬉しいのか? 👉 最適化されたマネージドなSpark環境。
15. Sparkのドキュメントはどこを見れば良いですか? 👉 オープンソースなので、パブリックに膨大なドキュメント。


## Q1) Sparkはどうやって生まれたのですか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/db80be2a-c37a-a688-c273-b7ff8078b1ee.png)

## Q2) ビッグデータ処理の文脈でよく出てくるけど、Sparkは何に使えるのか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/91b68b13-eb0e-f1d4-dc8d-3497ad680007.png)


## Q3) Hadoopの置き換えか? Map/Reduceで書かないといけないのか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/5512c5c5-f57d-6f1b-ec8d-de3351cd1461.png)

## Q4) 開発するのに使える言語は?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/3b756d76-d32b-3b2d-ba7c-c866a1c3ece2.png)


## Q5) Pandasと何が違うか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/f55a6d20-153d-d7b9-9a48-eae8384c71e5.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/9f8d813e-0d55-be2c-2a65-fa0af367372c.png)


## Q6) 最近、Spark/Databricksがデータウェアハウス(DWH)の文脈で出てくるけど、どういうことですか?


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/c23fe6dd-8c75-7e6c-19c8-3d762fd01373.png)

## Q7) Sparkを使うには、今あるPythonコードを全て書き換えないといけないのか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/d9c000c8-6cd4-f4ec-002e-b0731c31e084.png)


## Q8)機械学習でSparkはどう使えるのか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/648aa1bb-3cbd-1581-f9e3-27c135d44218.png)


## Q9) Sparkはチューニングが必要か?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/ab11f0f5-30e2-ab7d-a98b-e909ffce641b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/151b72ab-cf50-e266-07e2-3f442217a450.png)


## Q10) Sparkが接続できるデータソースは?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/b841f679-43dd-a3af-aa66-814a94b7f049.png)

## Q11) Sparkはバッチ処理のみ?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/eae4edcd-068b-ab6a-4033-902bc4e3b955.png)

## Q12) Sparkを試してみたい。環境構築はどうすればよいのか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/ce81a592-145c-4145-276f-cedc7fef9a94.png)


## Q13) クラウドのSparkサービスを使うと何が嬉しいのか?

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/52f48cdb-ea74-3f68-69f1-f776e3449672.png)

## Q14) DatabricksのSparkを使うと何が嬉しいのか?

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/9d271757-1e9d-db2f-4307-13875ec2842c.png)

## Q15) Sparkのドキュメントはどこを見れば良いですか?


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/3270bcb2-06fd-c4e3-8e9c-083812e080cf.png)

# まとめ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/c2f7f9c4-6852-eba6-9b5e-457f1d5e481b.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/62653/7fd98692-1480-8718-46d7-469efcc3cdfe.png)