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初心者なのでわからないことを調べながらやっていきますー