У меня есть RDD с этой структуройScala: Карта и Flatmap на РДУ
RDD[((String, String), List[(Int, Timestamp, String)])]
и данные
((D2,Saad Arif),List((4,2011-10-05 00:00:00.0,C101), (5,2010-01-27 00:00:00.0,C101)))
((D3,Faran Abid),List((7,2016-10-05 00:00:00.0,C101)))
((D1,Atif Shahzad),List((1,2012-04-15 00:00:00.0,C101), (2,2011-10-05 00:00:00.0,C101), (3,2006-12-25 00:00:00.0,C101)))
рассматривать это как таблицы означает
'(D2,Saad Arif)'
, как ключ и
'List((4,2011-10-05 00:00:00.0,C101), (5,2010-01-27 00:00:00.0,C101)'
как строки для этого ключа. Теперь я хочу, чтобы проверить для каждой строки, что если есть запись (история) с кодом «C101» до более или два года, то установить уровень 2 в противном случае 1. Таким образом, в результате РДД должен выглядеть следующим образом
((D2,Saad Arif),List((4,2011-10-05 00:00:00.0,C101, 1), (5,2010-01-27 00:00:00.0,C101, 1)))
((D3,Faran Abid),List((7,2016-10-05 00:00:00.0,C101, 1)))
((D1,Atif Shahzad),List((1,2012-04-15 00:00:00.0,C101, 2), (2,2011-10-05 00:00:00.0,C101, 2), (3,2006-12-25 00:00:00.0,C101, 1)))
Обратите внимание на новый уровень после отметки времени. Как я могу это сделать с помощью карты или карты?
Вы понимаете разницу между 'map' и' flatMap'? Это, очевидно, прецедент для «карты». –
Также ... Пожалуйста, посмотрите на свои прошлые вопросы. И если кто-то правильно ответил на ваш вопрос, не забудьте оценить усилия этого человека, отметив его ответ как принятый. –
@Sarvesh Kumar Singh да, у меня есть общее представление о карте и плоской карте, но я не знаю, как использовать в этом сценарии. –