Как конвертировать
RDD[(String, (((A, B), C), D))]
в
RDD[(String, (A, B, C, D))]
Нужно ли использовать flatMapValues?Я понятия не имею, как его использовать.
flatMapValues
Кто-нибудь может помочь с этим?
Это почти вопрос Scala, больше, чем Spark.В качестве альтернативы, попробуйте поиск по шаблону, например:
rdd.mapValues { case (((a, b), c), d) => (a, b, c, d) }
mapValues важно, поскольку он поддерживает разделитель СДР, если таковой имеется.
mapValues
Вы можете просто использовать mapValues и выбрать values из кортежа как
values
rdd.mapValues(x => (x._1._1._1, x._1._1._2, x._1._2, x._2))