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

测试

测试结果




相关推荐
xd1855785553 小时前
SQL语句生成-基于鸿蒙的AI SQL语句生成应用开发实践
人工智能·sql·华为·harmonyos·鸿蒙
G.O.G.O.G15 小时前
LeetCode SQL 从入门到精通(MySQL)06(上)
数据库·sql·mysql·leetcode
G.O.G.O.G19 小时前
《LeetCode SQL 从入门到进阶(MySQL)》06(下)
数据库·sql·oracle
heimeiyingwang20 小时前
【架构实战】SQL注入与XSS防御:常见Web漏洞的系统性修复
前端·sql·架构
周洲083020 小时前
STM32 串口指令控制系统|上位机下发命令控制 LED、继电器,通用指令解析框架
stm32·嵌入式硬件·mongodb
ClouGence1 天前
跨云、跨地域数据同步,这样更省心
数据库·sql·saas
Csvn1 天前
📊 SQL 入门 Day 4:聚合函数 — COUNT / SUM / AVG / MIN / MAX
后端·sql
哈__1 天前
MCP 协议落地实践:国产化数据库 AI 一站式 SQL 诊断调优方案
数据库·人工智能·sql
ClickHouseDB1 天前
推出 CostBench:一个用于数据仓库成本性能的开放基准
大数据·分布式·spark
这个DBA有点耶2 天前
SQL调优进阶:从“优化一条SQL”到“优化一个系统”的思维升级
java·大数据·数据库·sql·程序人生·dba·改行学it