【问题标题】:How to get count of year using spark scala如何使用 spark scala 计算年份
【发布时间】:2020-12-19 02:26:55
【问题描述】:

我有以下电影数据,如下所示, 我应该计算每年的电影数量,例如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) 是年份。我如何获得每年的电影数量?

【问题讨论】:

    标签: scala apache-spark apache-spark-sql rdd


    【解决方案1】:

    以这种方式将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))
    

    【讨论】:

      猜你喜欢
      • 2018-03-29
      • 1970-01-01
      • 1970-01-01
      • 2016-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-15
      • 1970-01-01
      相关资源
      最近更新 更多