У меня есть 2 комплекта, один с положительным и один с отрицательными образцами. Первое значение в массиве - это идентификация элемента, второе значение - сумма таких элементов.Spark - уменьшить с помощью оператора деления
positive: Array[(String, Int)]
negative: Array[(String, Int)]
Я хотел бы построить результат массива, который будет содержать имя элемента и его положительного до отрицательного коэффициента как числа с плавающей точкой. Приведенная ниже команда возвращает мне только целочисленное отношение.
val result = positive.union(negativeCount).reduceByKey((a, b) => (a/b)
Не могли бы вы посоветовать, как сделать соотношение числа поплавка?
Спасибо.
Я пробовал это, но он возвращает меня: 32: ошибка: тип несоответствия; найдено: Float required: Int –
volk
О да, потому что для уменьшения по ключу требуется тот же тип вывода, что и тип ввода. Делайте 'map (_. ToFloat)' перед запуском reduceByKey 'val result = positive.union (negativeCount) .mapValues (_. ToFloat) .reduceByKey ((a, b) => (a/b)' –
Спасибо, он работает отлично! – volk