2016-03-14 2 views
2

Я пытаюсь использовать искровой поток apache. У меня есть один источник данных, csv-файл из HDFS.Как разбить Spark DStream на несколько подпотоков

планирование I`m сделать ниже вещи с искровым Stream:

  1. Читать CSV периодически (5мин) файл с textFileStream
  2. расколоть DStream в нескольких суб-dstream.

Ниже приведен простой пример о требовании.

В этом формате мы получили CSV-файл.

NAME, SCHOOL, GENDER, AGE, SUBJECT, SCORE 
USR1, SCH001, male , 28 , MATH , 100 
USR2, SCH002, male , 20 , MATH , 99 
USR1, SCH001, male , 28 , ENGLISH, 80 
USR8, SCHOO8, female, 20 , PHY , 100 

Каждый 5 мин, прочитать файл, как это, то я хочу, чтобы разделить этот вход DStream на несколько subDStream. Каждый пользователь будет одним потоком. Является ли это возможным?

+1

на основе того, что вы хотели бы разбить на них? Хотя, похоже на RDD, я не думаю, что это возможно –

+0

@MateuszDymczyk Множество фильтров должно быть достаточно, не так ли? – zero323

+1

@ zero323 да, извините за то, что вы не точны там, несколько фильтров должны делать трюк, делать это за один раз параллельно не поддерживается, правда, правильно? –

ответ

0

Мое мнение, если у вас есть фиксированный интервал времени для сбора ваших данных, вам не нужны потоковые функции! Потоковая передача полезна, когда вы не знаете, когда поступают ваши данные. Но если потребность в вашей задаче - это вычисление (в реальном времени) суммарного счета пользователя за день/час/и т. Д., Потоковая передача - это ваше решение. Вопрос: вы хотите, чтобы фотография в вашем файле или фильме среди нескольких файлов?

Группировка USR в двух вариантах использования отличается, в случае потоковой передачи сложнее. Вы должны рассмотреть, какой тип вычислений по параметру group и windowing/slides. Я предлагаю посмотреть this

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