json数据格式:
[{"studentName":"lily","studentAge":12},{"studentName":"lucy","studentAge":15}]
pom:
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.44</version>
</dependency>
val conf = new SparkConf().setMaster("local").setAppName("json test")
val sc = new SparkContext(conf)
val textFile = sc.textFile("f:/data/*.txt")
textFile.map(JSON.parseArray) //解析为json数组
.flatMap(_.toArray) //json数组转为java数组,通过flatmap拉平
.map(_.asInstanceOf[JSONObject]) //把每个对象转成jsonobject
.map(x => (x.getString("studentName"), (x.getInteger("studentAge"), 1))) //通过jsonobject的方法处理数据
//方法二
val yiqings = JSON.parseArray(value.reduce(_ + _), classOf[自定义样例类]).toArray().toList.asInstanceOf[List[自定义样例类]]
//转换成RDD
val value1 = sc.makeRDD(yiqings)
版权说明
文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权。版权声明:未标注转载均为本站原创,转载时请以链接形式注明文章出处。如有侵权、不妥之处,请联系站长删除。敬请谅解!