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 版权协议,转载请附上原文出处链接和本声明。
