Apache Spark+Pythonはじめました
知らないみなさま、はじめまして。
巷で噂の機械学習やディープラーニングをはじめるにあたり、備忘録的にブログはじめることにしました。
ゆるゆると続けていこうと思います。
なぜSparkなのか、なぜ始めようと思ったのか等はおいおい書いていければと。
今日やったこと
- Apache Sparkのインストール
- 簡単なサンプル実行
ApacheSparkのインストール
https://spark.apache.org/downloads.html
ダウンロードページで下記を選択
1) Choose a Spark release: 1.4.1 2) Choose a package type: Pre-build for Hadoop 2.6 and later 3) Choose a download type: Direct Download
すると、ダウンロードリンクが表示されるのでURIをコピー
ターミナルで、
$ cd ~/Downloads
# ダウンロード
$ curl -0 http://d3kbcqa49mib13.cloudfront.net/spark-1.4.1-bin-hadoop2.6.tgz
# ありますな
$ ls -lt
spark-1.4.1-bin-hadoop2.6.tgz
# 解凍して
$ tar xvf spark-1.4.1-bin-hadoop2.6.tgz
# 解凍できてるね
$ ls -lt spark-1.4.1-bin-hadoop2.6/
# あとはお好みのディレクトリにフォルダを移動すれば完了!
インストールできたか起動して確認します
$ cd spark-1.4.1-bin-hadoop2.6
# Pythonで起動
$ ./bin/pyspark
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/__ / .__/\_,_/_/ /_/\_\ version 1.4.1
/_/
Using Python version 2.7.6 (default, Sep 9 2014 15:04:36)
SparkContext available as sc, HiveContext available as sqlContext.
>>>
# できたっぽい!\(^o^)/
簡単なサンプル実行
続いて、公式ドキュメントのサンプルを動かしてみる
https://spark.apache.org/docs/1.4.1/quick-start.html
RDDをSparkソースディレクトリのREADMEテキストファイルから作成
>>> textFile = sc.textFile("README.md")
RDDってなに? → spark rdd - Google 検索
RDDが持つアクションをいくつか実行してみる
# このRDDの行数
>>> textFile.count()
98
# RDDの最初の行
>>> textFile.first()
u'# Apache Spark'
READMEテキストファイルから作ったRDDのサブセットとして新しいRDDを返すフィルター変換を利用。てかこの説明だと意味不明なので動かしてみる。
# "Spark"を含む行だけの新しいRDDを作成
>>> linesWithSpark = textFile.filter(lambda line: "Spark" in line)
# linesWithSparkの行数をカウントしてみる
>>> linesWithSpark.count()
19
ああ、なるほど〜
ラムダさんはPythonの無名関数 → 式 (expression) — Python 2.7ja1 documentation
変換とアクションをチェインすることもできる模様
# READMEテキストファイルで"Spark"が含まれる行をカウント
>>> textFile.filter(lambda line: "Spark" in line).count()
19
おうちに帰るまでが遠足
# Spark終了コマンド
>>> exit()
おつかれさまでした!
きょうのまとめ
インストール自体はすごく簡単!
まだサンプル実行だけだけど、対話型で確認することができるので気軽にはじめられました。(やっぱり動くとうれしい)
Python初心者なのでわからないことを調べながらやっていきますー