Apache spark 应用SUM agg函数的火花代码
我的输入文件在下面Apache spark 应用SUM agg函数的火花代码,apache-spark,Apache Spark,我的输入文件在下面 surender,2015-JAN,100 raja,2015-JAN,20 kumar,2015-FEB,2 ajay,2015-FEB,23 我需要创建一个输出“查找每个月花费的总金额” 预期产量 2015-JAN,120 2015-FEB,25 我在spark shell中尝试了以下代码 scala> val fileRDD = sc.textFile("/user/cloudera/records.txt") scala> val mapRDD =
surender,2015-JAN,100
raja,2015-JAN,20
kumar,2015-FEB,2
ajay,2015-FEB,23
我需要创建一个输出“查找每个月花费的总金额”
预期产量
2015-JAN,120
2015-FEB,25
我在spark shell中尝试了以下代码
scala> val fileRDD = sc.textFile("/user/cloudera/records.txt")
scala> val mapRDD = fileRDD.map(x => (x.split(",")(1),x.split(",")(2)))
scala> val reduceRDD = mapRDD.reduceByKey((a,b) => (a+b))
scala> reduceRDD.collect
我得到了输出,但它不正确。Concat操作应用于数量
res21: Array[(String, String)] = Array((2015-JAN,10020), (2015-FEB,223))
我如何键入它。在地图的第二部分添加。toInt:
val mapRDD = fileRDD.map(x => (x.split(",")(1),x.split(",")(2).toInt))
如果不这样做,它仍然将其视为字符串,现在它将添加整数。在地图的第二部分添加。toInt:
val mapRDD = fileRDD.map(x => (x.split(",")(1),x.split(",")(2).toInt))
如果不这样做,它仍然将其视为字符串,现在它将添加整数。这里是:
val fileRDD = sc.textFile("test.txt")
val mapRDD = fileRDD.map(x => (x.split(",")(1),x.split(",")(2).toInt))
val reduceRDD = mapRDD.reduceByKey(_ + _)
reduceRDD.collect.foreach(println)
这是:
val fileRDD = sc.textFile("test.txt")
val mapRDD = fileRDD.map(x => (x.split(",")(1),x.split(",")(2).toInt))
val reduceRDD = mapRDD.reduceByKey(_ + _)
reduceRDD.collect.foreach(println)