如何使用spark scala获取年份计数
我有如下电影资料,如下所示, 我应该统计一下每年的电影数量,比如2002,2和2004,1如何使用spark scala获取年份计数,scala,apache-spark,apache-spark-sql,rdd,Scala,Apache Spark,Apache Spark Sql,Rdd,我有如下电影资料,如下所示, 我应该统计一下每年的电影数量,比如2002,2和2004,1 Littlefield, John (I) x House 2002 Houdyshell, Jayne demon State 2004 Houdyshell, Jayne mall in Manhattan 2002 val data=sc.textFile("..line to file") val dataSplit=data.map(line=>{va
Littlefield, John (I) x House 2002
Houdyshell, Jayne demon State 2004
Houdyshell, Jayne mall in Manhattan 2002
val data=sc.textFile("..line to file")
val dataSplit=data.map(line=>{var d=line.split("\t");(d(0),d(1),d(2))})
我无法理解的是,当我使用dataSplit.take(2)foreach(println)时,我看到d(0)是前两列Littlefield,John(i)是firstname和lastname,d(1)是电影名,如“x House”,d(2)是year。如何获得每年的电影数量?使用
reduceByKey
以这种方式映射元组
val dataSplit = data
.map(line => {var d = line.split("\t"); (d(2), 1)}) // (2002, 1)
.reduceByKey((a, b) => a + b)
// .collect() gives the result: Array((2004,1), (2002,2))