我有以下电影数据,如下所示,我应该每年获取电影的数量 2002,2 and 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=>{var d=line.split("\t");(d(0),d(1),d(2))})
我无法理解的是当我使用dataSplit.take(2).foreach(println)时,我看到d(0)是前两列Littlefield,John(I),这是名和姓,而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))
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句