spark 存储json数据遇到问题——json4s使用(一)
来源:互联网 发布:辽宁省软件协会 编辑:程序博客网 时间:2024/06/07 15:49
spark 存储json数据遇到问题——json4s使用(一)
在进行spark的学习过程中遇到了这样的问题。
1、《O'REILLY Learning Spark》的书中说道能够使用spark进行json 的读写,但是给出的例子使用的json转换的jar包是jackson的,还需要再次进行引入。
2、能不能找到一个spark内部已经有的基于scala的json处理的jar包。
在查看spark依赖的jar文件时,找到了json4s这个jar包,很明显就是使用scala的一个json转换的jar包。下面就介绍一下如何使用,首先介绍的是如何通过json4s实现生成json,后面还会介绍如何通过json串转换成对象。
好,下面上货,主要参考的是json4s的官方文档,这是地址:https://github.com/json4s/json4s/。
import org.json4s._ import org.json4s.JsonDSL._ import org.json4s.jackson.JsonMethods._ object JsonStudy { def main(args: Array[String]): Unit = { val a = parse(""" { "numbers" : [1, 2, 3, 4] } """) println(a.toString) val b = parse("""{"name":"Toy","price":35.35}""", useBigDecimalForDouble = true) println(b.toString) val c = List(1, 2, 3) val d = compact(render(c)) println(d) val e = ("name" -> "joe") val f = compact((render(e))) println(f) val g = ("name" -> "joe") ~ ("age" -> 35) val h = compact(render(g)) println(h) val i = ("name" -> "joe") ~ ("age" -> Some(35)) val j = compact(render(i)) println(j) val k = ("name" -> "joe") ~ ("age" -> (None: Option[Int])) val l = compact(render(k)) println(l) //定义json println("===========================") //推荐这种方式,因为可以用在使用map val jsonobj = ( ("name" -> "xiaoming") ~ ("age" -> 12) ) println(jsonobj) println(compact(render(jsonobj))) val jsonobjp = parse( """{ "name":"xiaogang", "age":12 }""") println(jsonobjp) println(compact(render(jsonobjp))) //通过类生成json println("===========================") case class Winner(id: Long, numbers: List[Int]) case class Lotto(id: Long, winningNumbers: List[Int], winners: List[Winner], drawDate: Option[java.util.Date]) val winners = List(Winner(23, List(2, 45, 34, 23, 3, 5)), Winner(54, List(52, 3, 12, 11, 18, 22))) val lotto = Lotto(5, List(2, 45, 34, 23, 7, 5, 3), winners, None) val json = ("lotto" -> ("lotto-id" -> lotto.id) ~ ("winning-numbers" -> lotto.winningNumbers) ~ ("draw-date" -> lotto.drawDate.map(_.toString)) ~ ("winners" -> lotto.winners.map { w => (("winner-id" -> w.id) ~ ("numbers" -> w.numbers)) })) println(compact(render(json))) } }
这里转换的过程已经很清楚了,不再做过多的赘述。
0 0
- spark 存储json数据遇到问题——json4s使用(一)
- spark 存储json数据遇到问题——json4s使用(二)
- 移动APP开发中遇到的问题(一):分享链接显示JSON格式数据
- json4s 嵌套使用
- 使用Gson和FastJson解析JSON数据遇到的问题
- scala-json-json4s-工具类
- 学习spark遇到的问题汇总(一)
- json4s
- spark中遇到的数据倾斜问题
- Spark使用小结(一) —入门
- Android解析JSON数据(一)——JSON解析
- Spark 分析Json数据存入Mysql 遇到的坑
- AndroidStudio——数据存储(一)
- Android—数据存储方式(一)
- Gson解析json数据遇到的问题。
- 数据的本地存储——Json
- 数据存储—NSKeyedArchiver(一)
- Android入门——数据解析之创建及使用JSON字符串(一)
- 前端利器:SASS基础与Compass入门
- sicily Binary Search 二分查找
- 转发和重定向的区别
- http://www.cnblogs.com/ifantastic/p/3185665.html
- Ubuntu14.04系统安装Python+机器学习(二)
- spark 存储json数据遇到问题——json4s使用(一)
- 开发的一些总结(1)
- 不知道在MFC中如何从线程工作函数中向窗口发送消息?用好一个指针就够了
- esource fork, Finder information, or similar detritus not allowed
- Android常用工具类
- qt工程下载
- PHP 使用 Redis
- Android自定义网络数据加载等待框的简单封装
- 算法和数据结构的关系