
2.6
まとめ
31
保存されたファイルを読み戻すには、すべての行が文字列として扱われるようにパースしなおさなけ
ればなりません。
def parseInput(row):
import re
pattern = re.compile(r'\(\'([a-z])\', ([0-9])\)')
row_split = pattern.split(row)
return (row_split[1], int(row_split[2]))
data_key_reread = sc \
.textFile(
'/Users/drabast/Documents/PySpark_Data/data_key.txt') \
.map(parseInput)
data_key_reread.collect()
読み込まれたキーのリストは、以前と一致しています。
2.5.6
.foreach(...)
メ ソ ッド
このメソッドは、同じ関数をRDDの各要素に適用していきます。
.map(...)
とは対照的に、指定
された関数を各レコードに1つずつ適用していきます。これが役立つのは、PySparkでネイティブにサ
ポートされていないデータベースに対してデータを保存したい場合です。
ここでは、このメソッドを使って
data_key
RDDに保存されているすべてのレコードを出力してい
ます(出力先は CLI で、Jupyter notebookで は あ り ま せ ん )。
def f(x):
print(x)
data_key.foreach(f) ...