scala> rdd.filter(x=> x.split(",")(5)!=" ").map(x=>(x.split(",")(1),x.split(",")(5))).map(x=>(x._1,x._2.toDouble)).reduceByKey(_+_).collect.foreach(println)
分析:
出现报错先看懂啥意思,上面的意思说因为”spu_price”
类型转换异常。
刚开始想的是:切分之后拿到的数组的某个元素就是string啊,而scala的string能toDouble啊,为啥报错呢,尝试了很久,突然想起来数据源中有header,有头,
那你怎么string toDouble,
就像这样的,不行
这样的就行
得能让他有转成的可能啊!
解决办法:
过滤掉header
scala>rdd.filter(x=> !x.split(",")(0).startsWith("s")).map(x=>(x.split(",")(1),x.split(",")(5).toDouble)).reduceByKey(_+_).collect.foreach(println)
版权声明:本文为qq_15009447原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。