Спарк DataFrame ДФ дается со схемой:Спарк DataFrame CROSS ОТНОСИТЬСЯ для колонн деагрегация
id, agg_values
432, 11 3.14 45 4.322
984, 1 9.22 45 22.17
Мне нужно производить "deaggdegated" колонки:
id, item_id, value
432, 11, 3.14
432, 45, 4.322
984, 1, 98.22
984, 45, 222.1
Синтаксический функции:
private def parse_agg_scores(line: String): List[(String, String)] = {
val items: Array[String] = line.split(' ')
val ids = Iterator.from(0, 2).takeWhile(_ < items.size).map(items(_))
val scores = Iterator.from(1, 2).takeWhile(_ < items.size).map(items(_))
ids.zip(scores).toList
}
Я пробовал flatMap, но он не работает:
val res = df.flatMap{ row =>
val line = row.getString(1)
parse_agg_scores(line)
}
Пожалуйста, не просто сказать: «это не работает», не говоря в том, что это не работает. Ошибка времени компиляции, ошибка времени выполнения, неожиданный вывод (и если да, что вы получили и чего вы ожидали)? –