Я начал изучать скалы и Apache Spark. У меня есть входной файл, как показано ниже без заголовка.
0,name1,33,385 - first record
1,name2,26,221 - second record
unique-id, name, age, friends
1) при попытке отфильтровать возраст, который не равен 26, приведенный ниже код не работает.
def parseLine(x : String) =
{
val line = x.split(",").filter(x => x._2 != "26")
}
Я такжепопробовал как ниже. в обоих случаях он печатает все значения, включая 26
val friends = line(2).filter(x => x != "26")
2), при попытке с индексом x._3 он говорит, что индекс является исходящим.
val line = x.split(",").filter(x => x._3 != "221")
Почему с индексом 3 здесь возникает проблема?
Ниже приведен полный пример кода.
package learning
import org.apache.spark._
import org.apache.log4j._
object Test1 {
def main(args : Array[String]): Unit =
{
val sc = new SparkContext("local[*]", "Test1")
val lines = sc.textFile("D:\\SparkScala\\abcd.csv")
Logger.getLogger("org").setLevel(Level.ERROR)
val testres = lines.map(parseLine)
testres.take(10).foreach(println)
}
def parseLine(x : String) =
{
val line = x.split(",").filter(x => x._2 != "33")
//val line = x.split(",").filter(x => x._3 != "307")
val age = line(1)
val friends = line(3).filter(x => x != "307")
(age,friends)
}
}
как отфильтровать по возрасту или друзьям по простомупуть сюда. почему индекс 3 не работает здесь