Spark SQL,如何将 DataFrame 转为 json 格式

作者 : 开心源码 本文共640个字,预计阅读时间需要2分钟 发布时间: 2022-05-12 共132人阅读

今天主要详情一下如何将 Spark dataframe 的数据转成 json 数据。用到的是 scala 提供的 json 解决的 api。

用过 Spark SQL 应该知道,Spark dataframe 本身有提供一个 api 可以供我们将数据转成一个 JsonArray,我们可以在 spark-shell 里头举个栗子来看一下。

可以发现,我们可以使用 dataframe 提供的 api 直接将 dataframe 转换成 jsonArray 的形式,但这样子却有些冗余。以上面的例子来说,很多时候我要的不是这样的形式。

[{“_1″:”abc”,”_2″:2}, {“_1″:”efg”,”_2″:4}]

需要大数据资料的可以加群:834325294 注明简书免费获取

这才是我们通常会使用到的 json 格式。以 dataframe 的 api 转换而成的 json 显著太过冗余。为此,我们需要借助少量 json 解决的包,本着能懒则懒的准则,直接使用 scala 提供的 json 解决包。

大概说明一下上述的代码,首先我们要先将 df 变量进行 collect 操作,将它转换成 Array ,但是要生成 jsonObject 得是 Array[Tuple2[T,T]] 的格式,所以我们需要再进一步转换成对应格式。这里的 map 是函数式编程里面的 map 。

而后也是用 map 操作生成 Array[JSONObject],最后再转换成 JSONArray 即可以。

将数据转换成 json 的格式通常不能太大,一般用在 spark 跑出数据结果后写入到其余数据库的时候会用到,比方 Mysql 。

以上~~

说明
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
7. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员
开心源码网 » Spark SQL,如何将 DataFrame 转为 json 格式

发表回复