Я попытался принятым решением в How do I convert csv file to rdd, я хочу, чтобы распечатать все пользователь, кроме «ОМ»:Convert CSV для РДА
val csv = sc.textFile("file.csv") // original file
val data = csv.map(line => line.split(",").map(elem => elem.trim)) //lines in rows
val header = new SimpleCSVHeader(data.take(1)(0)) // we build our header with the first line
val rows = data.filter(line => header(line,"user") != "om") // filter the header out
val users = rows.map(row => header(row,"user")
users.collect().map(user => println(user))
, но я получил ошибку:
java.util.NoSuchElementException: key not found: user
Стараюсь отлаживать его и найти index
атрибуты header
выглядеть следующим образом:
Так как я новичок искры и Scala, означает ли это, т шляпа user
уже есть в Map
? Тогда почему ошибка key not found
?
Я не могу воспроизвести вашу проблему. В REPL он возвращает: 'Array [String] = Array (user, daniel, 3754978)'. BTW, я думаю, вы все равно хотите отфильтровать заголовок, выполнив 'data.filter (line => header (строка,« пользователь »)! =« Пользователь »))' – maasg
вы могли бы добавить первые строки данных в файл? – maasg
@maasg, Спасибо за ваши комментарии. Я узнал о своей ошибке, это не проблема с искрами/scala, это ошибка, когда я создал csv, я объясню больше в моем ответе ниже. – user3684014