Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!

sparkContext.hadoopConfiguration и вызов sequenceFile с соответствующей схемой в пути (s3n / s3a / s3). Вроде бы мне больше ничего не потребовалось для работы S3.Всё дело в новом архитектурном подходе, который значительно выигрывает в производительности у классических MR приложенийОсновные преимущества Spark:
все промежуточные данные между Map и Reduce фазами, сбрасывались в HDFSПромежуточные данные MapReduce кладутся на локальные диски серверов, выполняющих mapper'ы, в единственной копии. HDFS не используется. Данные перед reduce-фазой также собираются на локальных дисках без использования HDFS. Подробности можете посмотреть в моей статье тут
Теперь промежуточные данные сериализуются и хранятся в оперативной памяти, а обмен данными между узлами происходит напрямую, через сеть, без лишних абстракций. Стоит сказать что дисковый ввод/вывод всё таки используется (на этапе shuffle). Но его интенсивность значительно меньше.Все промежуточные данные в Spark во время shuffle сбрасываются на диск точно так же, как в MapReduce. Если данные обрабатываются по одному алгоритму, то интенсивность ввода-вывода будет одинаковой
Ну и наконец Spark оперирует RDD абстракциями (Resilient Distributed Dataset), которые более универсальны чем MapReduce. Хотя для справедливости надо сказать, что есть Cascading. Это обёртка над MR, призванная добавить гибкости.Также вы забыли упомянуть, что есть и другие обертки над MR, вроде Pig и Hive, которые на текущий момент популярнее Spark
Да, стоит сказать, что Spark API доступно для Scala, Java и Pythonа также для R
data = ["user_id:0000, habrahabr.ru",
"user_id:0001, habrahabr.ru",
"user_id:0002, habrahabr.ru",
"user_id:0000, abc.ru",
"user_id:0000, yxz.ru",
"user_id:0002, qwe.ru",
"user_id:0002, zxc.ru",
"user_id:0001, qwe.ru"]
rdd = sc.parallelize(data)
counts = rdd.map(lambda x: x.split(',')).map(lambda x: (x[1],1))
tops = counts.reduceByKey(lambda x,y: x+y).takeOrdered(10, key = lambda x: -x[1])
print tops
pyspark --master yarn-client --num-executors 6 --executor-memory 4g --executor-cores 12
Apache Spark как ядро проекта. Часть 1