Основи Big Data з PySpark
Upendra Devisetty
Science Analyst, CyVerse
Дія reduce(func) використовується для агрегування елементів звичайного RDD
Функція має бути комутативною (зміна порядку операндів не змінює результат) і асоціативною
Приклад дії reduce() у PySpark
x = [1,3,4,6]
RDD = sc.parallelize(x)
RDD.reduce(lambda x, y : x + y)
14
saveAsTextFile() зберігає RDD у текстовий файл у теці, де кожен розділ — окремий файлRDD.saveAsTextFile("tempFile")
coalesce() можна використати, щоб зберегти RDD як один текстовий файлRDD.coalesce(1).saveAsTextFile("tempFile")
Дії RDD, доступні для парних RDD у 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}
Основи Big Data з PySpark