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;
}

测试

测试结果




相关推荐
证榜样呀1 小时前
2026 中专大数据技术专业可考的证书有哪些,必看!
大数据·sql
Codefengfeng1 小时前
数据安全知识点速通
sql
鸿乃江边鸟1 小时前
Spark Datafusion Comet 向量化Rust Native--CometShuffleExchangeExec怎么控制读写
大数据·rust·spark·native
全栈前端老曹2 小时前
【MongoDB】深入研究副本集与高可用性——Replica Set 架构、故障转移、读写分离
前端·javascript·数据库·mongodb·架构·nosql·副本集
逍遥德2 小时前
Sring事务详解之02.如何使用编程式事务?
java·服务器·数据库·后端·sql·spring
驾数者3 小时前
Flink SQL实时数仓实战:基于Flink SQL的完整项目案例
sql·flink·linq
此刻你15 小时前
常用的 SQL 语句
数据库·sql·oracle
山岚的运维笔记17 小时前
SQL Server笔记 -- 第14章:CASE语句
数据库·笔记·sql·microsoft·sqlserver
范纹杉想快点毕业18 小时前
状态机设计与嵌入式系统开发完整指南从面向过程到面向对象,从理论到实践的全面解析
linux·服务器·数据库·c++·算法·mongodb·mfc