2016-11-02 3 views
0

Задача:
Большое количество файлов. Каждый файл имеет размер 10 МБ и состоит из записей в формате json, gzipped.Итерации через S3 файлы в Spark

Мой снипп загружает все данные в память. Нет необходимости делать это. Мне просто нужно несколько часов данных в памяти за раз. Мне нужно скользящее окно.

Можно ли применить идею «окна» от искрообразования к файлам и как мне это сделать?

Я использую Python

location = "s3://bucketname/xxxx/2016/10/1[1-2]/*/file_prefix*.gz" 
rdd = sc.textFile(location) 
+0

Если вы знаете, какие данные необходимо загрузить, вы можете использовать 'filter', так как все преобразования в искры ленивы, он загружает только отфильтрованные данные. – Shankar

+0

ОК, что действительно полезно. Тем не менее, я думаю, что мне все равно придется применить какое-то окно. У меня довольно много данных. Это примерно 300 ГБ. – hibernado

+0

Spark streaming поддерживает функцию раздвижного окна, проверьте это http://spark.apache.org/docs/latest/streaming-programming-guide.html#window-operations – Shankar

ответ

0

сниппета вы вывесили на самом деле не делает вычисления. Выполнение искры является ленивым и только вычисляет «преобразования», такие как map с, filter и даже textFile с, когда вы запрашиваете результат - например, подсчет RDD.

Другое примечание - это то, что большинство потоков операций Spark по умолчанию. Если у вас 300 файлов json 10M, вы получите 300 отдельных разделов или задач. Если вы готовы подождать, вы можете выполнить большинство операций RDD в этом наборе данных по одному ядру.

Если вам нужно скользящее окно, то в пакете Spark streaming есть хорошая функциональность. Но у опубликованного вами фрагмента нет никаких проблем, как есть!

Смежные вопросы