Я довольно плохо знаком с Scala. У меня есть текстовый файл, который имеет только одну строку со словами файла, разделенных точкой с запятой (;). Я хочу извлечь каждое слово, удалить пробелы, преобразовать все в строчные буквы и вызвать их на основе индекса каждого слова. Ниже показано, как я подошел к нему:
newListUpper2.txt contains (Bed; chairs;spoon; CARPET;curtains )
val file = sc.textFile("myfile.txt")
val lower = file.map(x=>x.toLowerCase)
val result = lower.flatMap(x=>x.trim.split(";"))
result.collect.foreach(println)
Ниже приведена копия REPL, когда я выполнил код
scala> val file = sc.textFile("newListUpper2.txt")
file: org.apache.spark.rdd.RDD[String] = newListUpper2.txt MapPartitionsRDD[5] at textFile at
<console>:24
scala> val lower = file.map(x=>x.toLowerCase)
lower: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[6] at map at <console>:26
scala> val result = lower.flatMap(x=>x.trim.split(";"))
result: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[7] at flatMap at <console>:28
scala> result.collect.foreach(println)
bed
chairs
spoon
carpet
curtains
scala> result(0)
<console>:31: error: org.apache.spark.rdd.RDD[String] does not take parameters
result(0)
Результаты не обрезаются, а затем передают индекс в качестве параметра для получить слово по этому индексу дает ошибку. Мой ожидаемый результат должен быть таким, как указано ниже, если я передам индекс каждого слова в качестве параметра
result(0)= bed
result(1) = chairs
result(2) = spoon
result(3) = carpet
result(4) = curtains
Что я делаю неправильно?.