
30
2
章 耐障害性分散データセット
.reduceByKey(...)
の動作は
.reduce(...)
メソッドに似ていますが、reduceの処理をキー単
位で行うところが異なります。
data_key = sc.parallelize(
[('a', 4),('b', 3),('c', 2),('a', 8),('d', 2),('b', 1),
('d', 3)],4)
data_key.reduceByKey(lambda x, y: x + y).collect()
このコードは次の結果を返します。
2.5.4
.count(...)
メ ソ ッド
.count(...)
メソッドは、RDD 内の要素数をカウントします。
data_reduce.count()
このコードは、
data_reduce
RDDの要素数である
6
を返します。
.count(...)
メソッドは、次のメソッドと同じ結果を返しますが、データセット全体がドライバに返
さずに済むところが違います。
len(data_reduce.collect()) #
間違い
?
こんなことはしないように
!
データセットがキー-バリュー形式になっているなら、
.countByKey()
メソッドを使えばキーごと
のカウントが得られます。次のコードを実行してみてください。
data_key.countByKey().items()
このコードは次の結果を出力するでしょう。
2.5.5
.saveAsTextFile(...)
メ ソ ッド
その名が示すとおり、 ...