scala - 如何在 Spark 中发送 JSON 响应
问题描述
我的 JSON 文件(input.json)如下所示。
{"first_name":"Sabrina","last_name":"Mayert","email":"donny54@yahoo.com"}
{"first_name":"Taryn","last_name":"Dietrich","email":"donny54@yahoo.com"}
我的 Scala 代码如下所示。在这里,我试图根据电子邮件返回 first_name 和 last_name。
val conf = new SparkConf().setAppName("RowCount").setMaster("local")
val sc = new SparkContext(conf)
val sqlContext = new SQLContext(sc)
val input = sqlContext.read.json("input.json")
val data = input
.select("first_name", "last_name")
.where("email=='donny54@yahoo.com'")
.toJSON
data.write.json("input2")
sc.stop
complete(data.toString)
data.write.json("input2") 创建文件如下所示
{"value":"{\"first_name\":\"Sabrina\",\"last_name\":\"Mayert\"}"}
{"value":"{\"first_name\":\"Taryn\",\"last_name\":\"Dietrich\"}"}
完成(data.toString)返回响应[值:字符串]
如何获取 JSON 对象的响应数组。
[{"first_name":"Sabrina","last_name":"Mayer"},{"first_name":"Taryn","last_name":"Dietrich"}]
提前感谢您的帮助。
解决方案
您正在转换为 json 两次。不要使用 json 转换两次,你应该得到你想要的输出:
val data = input
.select("first_name", "last_name")
.where("email=='donny54@yahoo.com'")
data.write.json("input2")
输出:
{"first_name":"Sabrina","last_name":"Mayert"}
{"first_name":"Taryn","last_name":"Dietrich"}
这是否解决了您的问题,或者您是否特别需要将其转换为数组?
推荐阅读
- c# - Entity Framework Core,一对多关系,集合总是空的
- http-status-code-301 - 关于.htaccess 301 路由的问题 .htaccess 文件中有异常301 路由
- android - 如何为录音库创建自定义文件路径?
- android - 是否有任何替代意图为类(非活动)发送数据的方法?
- c# - .Net Core MVC 中有类似 RouteConfig.cs 的东西吗?
- python - AttributeError:“DisabledBackend”对象没有属性“_get_task_meta_for”
但这很好 - python - 具有多个输入的 Keras 网格搜索
- mongodb - MongoDB:按其他集合的总和对记录进行排序
- java - 使用 SQL Server 登录后保存用户会话
- python - Anaconda - 正在使用通道 conda-forge 搞砸整个环境?