Основы 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