Используйте aggregateBykey или lowerByKey, чтобы получить агрегированные записи для ключа - PullRequest
0 голосов
/ 03 декабря 2018

У меня есть входные данные в формате

RDD[
(Map1, RecordA),
(Map2, RecordX),
(Map1, RecordB),
(Map2, RecordY),
(Map1, RecordC),
(Map2, RecordZ)
]

Ожидаемый формат вывода (Список СДР):

List[
RDD[RecordA, RecordB, RecordC],
RDD[RecordX, RecordY, RecordZ]
]

Я хочу, чтобы внутренние СДР были сгруппированы по ключуэто Map1, Map2, и я хочу создать внешний список в виде коллекции внутренних СДР.

Я пытался использовать API ReduByKey и API aggregateByKey, но пока не увенчался успехом!

Реальный мирПример:

RDD[
(Map("a"->"xyz", "b"->"per"), CustomRecord("test1", 1, "abc")),
(Map("a"->"xyz", "b"->"per"), CustomRecord("test2", 1, "xyz")),
(Map("a"->"xyz", "b"->"lmm"), CustomRecord("test3", 1, "blah")),
(Map("a"->"xyz", "b"->"lmm"), CustomRecord("test4", 1, "blah"))
]

final case class CustomRecord(
string1: String,
int1: Int,
string2: String)

Благодарим Вас за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...