spark sql 与scala混合开发实现数据入mongodb

目录

概述

在此提供 spark sql 与scala混合开发实现数据入mongodb 相关思路

将部分重复性功能进行通用化(使用SQL与Scala混合开发模式)。

相关组件 hadoop 3.3.6 spark 3.4.2 kyuubi 1.8.0 基于上术组件开发

资源

如遇资源或代码方面问题,可以下载以下内容解决。

资源 下载地址
相关jar包 地址
关键代码 地址

解决问题

进行数据分析时,会出现上百个字段,几十万的数据量,导致前端拉取慢,而且浏览器老崩。

所以需要写入快,能分页,支持索引,为后续功能做扩展,也可能出现,数据过千万的情况,考虑方方面面,最终使用 spark sqlScala 混合开发,完成前端传SQL,后端将 SQLScala 组合写入 Mongodb,提交给 Spark 执行即可解决这一类问题

效果

环境配置

相关包

启动的spark环境中也有对应的包

关键代码

java 复制代码
public static boolean exportMongodb(Kyuubi kyuubi, String mongodbUrl, Integer repartition, String database, String collection, Integer maxBatchSize) throws SQLException {
	。。。
    StringBuilder sb = new StringBuilder();
    sb.append("val df=spark.sql(\"").append(kyuubi.getSql()).append("\"").append(");")
            .append("df");
    if (Objects.nonNull(repartition) && repartition > 0) {
        sb.append(".repartition(").append(repartition).append(")");
    }
    sb.append(".write.mode(\"overwrite\")");
    sb.append(".format(\"mongodb\")");
    sb.append(".option(\"connection.uri\", ").append("\"").append(mongodbUrl).append("\")");
    sb.append(".option(\"database\", ").append("\"").append(database).append("\")");
    sb.append(".option(\"collection\", ").append("\"").append(collection).append("\")");
    sb.append(".option(\"ordered\", \"false\")");
    sb.append(".option(\"maxBatchSize\", ").append("\"").append(maxBatchSize).append("\")");
    sb.append(".save();");
    System.out.println(sb);
	。。。
    return true;
}

测试

测试结果




相关推荐
DataGear8 小时前
如何在DataGear 5.4.1 中快速制作SQL服务端分页的数据表格看板
javascript·数据库·sql·信息可视化·数据分析·echarts·数据可视化
数据狐(DataFox)8 小时前
SQL参数化查询:防注入与计划缓存的双重优势
数据库·sql·缓存
SailingCoder12 小时前
MongoDB Memory Server与完整的MongoDB的主要区别
数据库·mongodb
水木石画室12 小时前
MongoDB 常用增删改查方法及示例
数据库·mongodb
旷世奇才李先生12 小时前
MongoDB 安装使用教程
数据库·mongodb
qq_3392822312 小时前
mongodb 中dbs 时,local代表的是什么
数据库·mongodb
Accpdaiyekun12 小时前
C# 操作mongodb 多次查询快还是使用管道查询速度快
mongodb·c#·lua
百度Geek说15 小时前
搜索数据建设系列之数据架构重构
数据仓库·重构·架构·spark·dubbo
先做个垃圾出来………18 小时前
SQL的底层逻辑解析
数据库·sql
Lx35219 小时前
MySQL物化视图:预计算查询结果的定期刷新
sql·mysql·性能优化