У меня есть набор координат (x, y) в качестве моих данных в CSV-файле. Я хочу передать эти x и y в RDD [(Double, Double)] как кортежи и назвать его точками. Я пробовал следующее, но по какой-то причине я получаю сообщение об ошибке. «Конструктор не может быть создан для ожидаемого типа, найдено: Array [T], требуется: String».
// Load the data
val data = sc.textFile("data.csv")
// Read the data as an RDD[(Double, Double)]
val points = data.map(line => line.split(",").map{ case Array(x, y) => (x.toDouble, y.toDouble)} )
РЕДАКТИРОВАТЬ: Есть ли способ, которым я могу отфильтровать эти точки, чтобы я мог обрабатывать значения, которые являются нулевыми (если x или y или оба равны нулю в наборе данных)? По сути, я хочу проверить, всегда ли кортеж содержит 2 элемента. Я пробовал что-то вроде этого
val points = data.map(line => line.split(",").filter(!_.isEmpty)).map{ case Array(x, y) => (x.toDouble, y.toDouble)}.filter(_.size > 1)
но я получаю ошибку Несоответствие типов, ожидаемое: (Double, Double) => Boolean, фактическое: (Double, Double) => Любое