请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

rdd操作过程中的数据转换

scala> val jsonRDD = sc.textFile("file:///home/hadoop/data/people.json")
jsonRDD: org.apache.spark.rdd.RDD[String] = file:///home/hadoop/data/people.json MapPartitionsRDD[1] at textFile at <console>:24
scala> jsonRDD.collect()
res0: Array[String] = Array({"name":"Michael"}, {"name":"Andy", "age":30}, {"name":"Justin", "age":19})
scala> import scala.util.parsing.json.JSON
import scala.util.parsing.json.JSON
scala> val mapRDD = jsonRDD.flatMap(x=>JSON.parseFull(x))
mapRDD: org.apache.spark.rdd.RDD[Any] = MapPartitionsRDD[2] at flatMap at <console>:30
scala> mapRDD.collect()
res1: Array[Any] = Array(Map(name -> Michael), Map(name -> Andy, age -> 30.0), Map(name -> Justin, age -> 19.0))
scala> mapRDD.map(x=>(x.get("name"),1))
<console>:33: error: value get is not a member of Any
       mapRDD.map(x=>(x.get("name"),1))
                        ^

报value get is not a member of Any的错误,但是怎么操作没搞出来。

正在回答

1回答

你这是rdd,里面没有get方法的,你弄混了,应该是sparksql里面的

0 回复 有任何疑惑可以回复我~
  • 提问者 慕九州9163395 #1
    老师,那我在RDD中应该怎么操作?也就是我怎么才能构建出("Andy",19)这种类型?
    回复 有任何疑惑可以回复我~ 2017-09-20 17:58:00
  • Michael_PK 回复 提问者 慕九州9163395 #2
    你查下如何取tuple
    回复 有任何疑惑可以回复我~ 2017-09-20 18:51:00
  • 提问者 慕九州9163395 #3
    非常感谢!
    回复 有任何疑惑可以回复我~ 2018-02-09 11:19:00
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号