找不到reduceByKey方法

排除版本问题:1.2.0版本以上有该方法
排除import出错问题:按照其他网友的说法引入了
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
依然没有解决
最终找到问题:
我要处理的rdd根本就不是一个map,根本没有key,当然用不上reduceByKey了。。。

原代码

    val mapRDD = importdata.map { s => {
      val t = s.split(" ")
      (t(1), t(4), 1)
    }
    }
    val reduceRDD: RDD[((String, String), Int)] = mapRDD.reduceByKey(_ + _)

修改后代码:

    val mapRDD = importdata.map { s => {
      val t = s.split(" ")
      ((t(1), t(4)), 1)
    }
    }
    val reduceRDD: RDD[((String, String), Int)] = mapRDD.reduceByKey(_ + _)

如上,只是添加了一对括号而已,在没有括号之前是完全不报错的。

感觉还是java简单好用些,出了问题一眼看得见,scala灵活性太高了。。。。***

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值