PySparkで学ぶBig Data入門
Upendra Devisetty
Science Analyst, CyVerse
reduce(func) アクションは通常の RDD の要素を集計します
関数は可換(順序で結果が変わらない)かつ結合的である必要があります
PySpark における reduce() の例
x = [1,3,4,6]
RDD = sc.parallelize(x)
RDD.reduce(lambda x, y : x + y)
14
saveAsTextFile() は RDD をディレクトリ内のテキストファイル群として保存し、各パーティションを別ファイルにしますRDD.saveAsTextFile("tempFile")
coalesce() を使用しますRDD.coalesce(1).saveAsTextFile("tempFile")
PySpark のペア RDD 用アクション
ペア RDD アクションはキーと値を活用します
例
countByKey()
collectAsMap()
countByKey() は型 (K, V) のみで利用可能
countByKey() は各キーの要素数を数えます
簡単なリストでの countByKey() 例
rdd = sc.parallelize([("a", 1), ("b", 1), ("a", 1)])
for kee, val in rdd.countByKey().items():
print(kee, val)
('a', 2)
('b', 1)
collectAsMap() は RDD のキーと値を辞書で返します
簡単なタプルでの collectAsMap() 例
sc.parallelize([(1, 2), (3, 4)]).collectAsMap()
{1: 2, 3: 4}
PySparkで学ぶBig Data入門