当前位置: 首页 > news >正文

生产环境_Spark解析JSON字符串并插入到MySQL数据库

业务背景:      

  最近开发有一个需求,是这样的

        我需要将一段从前端传过来的JSON字符串进行解析,并从中提取出所需的数据,然后将这些数据插入到MySQL数据库中。

json格式样例如下

{ \"区域编号\": \"001\", \"区域名称\": \"测试区域\", \"速度\": \"50\", \"速度分数\": \"80\", \"gj\": \"中国\", \"区域顶点集\": \"[{'x': 1, 'y': 2}, {'x': 3, 'y': 4}]\" }"}

        spark代码会使用JsonPath库解析JSON数据将上面的json串解析,使用JsonPath.parsejsonStr解析为parsedJson对象。

        随后使用SparkSQL将这条数据写入mysql中特定的库表,其实还可以做一个优化的,比如入库前先判断有没有这条数据,如果有则不插入,如果没有就插入,优化这部分我没做,有时间在改吧。

    代码如下

  注意的是,只要配置好mysql的配置即可

import com.jayway.jsonpath.JsonPath
import java.sql.{Connection, DriverManager}
object area_sd_insert_v2 {def main(args: Array[String]): Unit = {// 初始化参数val jsonparam = "{\"jsonStr\": \"{ \\\"区域编号\\\": \\\"001\\\", \\\"区域名称\\\": \\\"测试区域\\\", \\\"速度\\\": \\\"50\\\", \\\"速度分数\\\": \\\"80\\\", \\\"gj\\\": \\\"中国\\\", \\\"区域顶点集\\\": \\\"[{'x': 1, 'y': 2}, {'x': 3, 'y': 4}]\\\" }\"}"println(jsonparam)val jsonStr = JsonPath.read[String](jsonparam, "$.jsonStr")val parsedJson = JsonPath.parse(jsonStr)val areaid = parsedJson.read[String]("$.区域编号")val areaName = parsedJson.read[String]("$.区域名称")val sd = parsedJson.read[String]("$.速度")val score = parsedJson.read[String]("$.速度分数")val gj = parsedJson.read[String]("$.gj")val areaPts = parsedJson.read[String]("$.区域顶点集")//by_matrix70,防止抄袭_20231216//博客主页   https://blog.csdn.net/qq_52128187?type=blogval host = "192.168.11.11"val port = "3306"val defaultCharset = "utf-8"val user = "root"val password = "123456789"val base = "test_1" // 数据库名val table = "table_20231216"val driver ="com.mysql.jdbc.Driver"val url = s"jdbc:mysql://$host:$port/$base?useUnicode=true&characterEncoding=$defaultCharset&useSSL=false"Class.forName(driver)val connection = DriverManager.getConnection(url, user, password)try {val statement = connection.createStatementval rowAffected = statement.executeUpdate(s"""INSERT INTO $table ('区域编号', '区域名称', '速度', '速度分数', 'gj', '区域顶点集')VALUES ('$areaid', '$areaName', '$sd', '$score', '$gj', '$areaPts')""")} finally {connection.close()}}
}

相关文章:

生产环境_Spark解析JSON字符串并插入到MySQL数据库

业务背景: 最近开发有一个需求,是这样的 我需要将一段从前端传过来的JSON字符串进行解析,并从中提取出所需的数据,然后将这些数据插入到MySQL数据库中。 json格式样例如下 { \"区域编号\": \"001\", …...

WEB渗透—PHP反序列化(四)

Web渗透—PHP反序列化 课程学习分享(课程非本人制作,仅提供学习分享) 靶场下载地址:GitHub - mcc0624/php_ser_Class: php反序列化靶场课程,基于课程制作的靶场 课程地址:PHP反序列化漏洞学习_哔哩…...

LVS-DR模式部署

实验准备: 节点服务器 192.168.116.20 #web1 192.168.116.30 #web2 1.部署NFS共享存储 2.部署Web节点服务器 将两台服务器的网关注释掉 #重启网卡 systemctl restart network 修改节点服务器的内核参数|vim /etc/sysctl.conf net.ipv4.conf.lo.arp_ign…...

Oracle的学习心得和知识总结(三十)| OLTP 应用程序的合成工作负载生成器Lauca论文翻译及学习

目录结构 注:提前言明 本文借鉴了以下博主、书籍或网站的内容,其列表如下: 1、参考书籍:《Oracle Database SQL Language Reference》 2、参考书籍:《PostgreSQL中文手册》 3、EDB Postgres Advanced Server User Gui…...

HarmonyOS4.0从零开始的开发教程18后台代理提醒

HarmonyOS(十六)后台代理提醒 简介 随着生活节奏的加快,我们有时会忘记一些重要的事情或日子,所以提醒功能必不可少。应用可能需要在指定的时刻,向用户发送一些业务提醒通知。例如购物类应用,希望在指定时…...

智能优化算法应用:基于算术优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于算术优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于算术优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.算术优化算法4.实验参数设定5.算法结果6.…...

在vue中通过js动态绘制table,并且合并连续相同内容的行,支持点击编辑单元格内容

首先是vue代码 <template><div id"body-container"style"position: absolute"><div class"box-container"><div class"lsb-table-box" ><div class"table-container" id"lsb-table"&…...

输电线路定位:精确导航,确保电力传输安全

在现代社会中&#xff0c;电力作为生活的基石&#xff0c;其安全稳定运行至关重要。而输电线路作为电力传输的重要通道&#xff0c;其故障定位和修复显得尤为重要。恒峰智慧科技将为您介绍一种采用分布式行波测量技术的输电线路定位方法&#xff0c;以提高故障定位精度&#xf…...

ZKP Commitment (1)

MIT IAP 2023 Modern Zero Knowledge Cryptography课程笔记 Lecture 5: Commitment 1 (Ying Tong Lai) Overview: Modern SNARK IOP: Interactive Oracle ProofCommitment SchemeIOP “compiled by” the commitment scheme to get a non-interactive proofAn IOP is “inform…...

【难点】【LRU】146.LRU缓存

题目 法1&#xff1a;基于Java的LinkedHashMap 必须掌握法1。参考链接 关于LinkedHashMap的介绍 class LRUCache {int cap;LinkedHashMap<Integer, Integer> cache new LinkedHashMap<>();public LRUCache(int capacity) { this.cap capacity;}public int get…...

基于YOLOv8深度学习的吸烟/抽烟行为检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 ✌更多学习资源&#xff0c;可关注公-仲-hao:【阿旭算法与机器学习】&#xff0c;共同学习交流~ &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推…...

菜鸟学习日记(python)——匿名函数

Python 使用 lambda 来创建匿名函数。 lambda 函数是一种小型、匿名的内联函数&#xff0c;它可以具有任意数量的参数&#xff0c;但只能有一个表达式。 匿名函数的一般格式如下&#xff1a; lambda 参数列表:表达式 表达式用于计算并返回函数结果 lambda 函数通常用于编写…...

CompleteFuture与Future的比较

CompleteFuture的介绍CompleteFuture的特点CompleteFuture的应用场景CompletableFuture的优缺点Future的介绍Future的特点Future的应用场景Future的优缺点CompletableFuture和Future的区别CompletableFuture和Future的关联关系CompletableFuture和Future的使用示例CompletableF…...

数据分享 I 全国市级商品房屋销售数据,shp/excel格式,2005-2020年数据

基本信息. 数据名称: 全国市级商品房屋销售数据 数据格式: Shp、excel 数据时间: 2005-2020年 数据几何类型: 面 数据坐标系: WGS84坐标系 数据来源&#xff1a;网络公开数据 数据字段&#xff1a; 序号字段名称字段说明1spxse商品房销售额&#xff08;亿元&#xf…...

面试题总结(十一)【C++】【华清远见西安中心】

C和C的区别有哪些&#xff1f; C 和 C 是两种不同的编程语言&#xff0c;它们有以下一些区别&#xff1a; 1. 语言起源和发展&#xff1a;C 语言是由贝尔实验室的 Dennis Ritchie 在 1972 年开发的&#xff0c;主要用于系统编程和底层开发&#xff1b;而 C 语言是在 C 语言的基…...

c++_01_名字空间_复合类型_缺省参数_哑元函数

0 前言 C和C一样&#xff0c;都属于编译型语言 C和C一样&#xff0c;都属于强类型语言 C对C完全兼容&#xff0c;并提供更多面向对象的特性&#xff1a;语言风格更加简洁&#xff0c;类型检查更加严格 1 名字空间 namespace WHY&#xff1f;划分更精细的逻辑单元(逻辑空间)&…...

前端常见面试题之html和css篇

文章目录 一、html1. 如何理解html语义化2. 说说块级元素和内联元素的区别 二、css1. 盒模型的宽度offsetWidth如何计算2. box-sizing:border-box有什么用3. margin的纵向重叠问题4. 谈谈你对BFC的理解和应用5. 清除浮动有哪些方式6. 使用flex布局实现骰子37.position的absolut…...

使用libaom处理av1编码教程

使用libaom处理av1编码教程 文章目录 使用libaom处理av1编码教程一. av1 是什么二. av1 用处三. libaom 是什么四. libaom 安装五. libaom 安装完成六. 解码av1 一. av1 是什么 AV1&#xff08;AOMedia Video 1&#xff09;是一种 开源视频编码格式 。它由开放媒体联盟 (AOM) …...

面试题总结(十)【数据库】【华清远见西安中心】

数据库的分类有哪些&#xff1f; 数据库可以按照不同的标准进行分类&#xff0c;以下是一些常见的数据库分类方式&#xff1a; 1. 关系型数据库&#xff08;Relational Database&#xff09;&#xff1a;关系型数据库采用表格的形式来组织数据&#xff0c;数据之间通过键值关联…...

计算机网络:物理层(三种数据交换方式)

今天又学到一个知识&#xff0c;加油&#xff01; 目录 前言 一、电路交换 二、报文交换 三、分组交换 1、数据报方式 2、虚电路方式 3、比较 总结 前言 为什么要进行数据交换&#xff1f; 一、电路交换 电路交换原理&#xff1a;在数据传输期间&#xff0c;源结点与…...

为什么93%的团队在第3天就弃用DeepSeek Coder?资深架构师复盘47次失败落地的共性断点

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;为什么93%的团队在第3天就弃用DeepSeek Coder&#xff1f; DeepSeek Coder 作为开源大模型驱动的代码助手&#xff0c;发布初期引发广泛期待&#xff0c;但真实落地场景中却遭遇高频流失——第三方开发…...

nanoMODBUS:嵌入式系统轻量级Modbus通信库的5大创新与实战指南

nanoMODBUS&#xff1a;嵌入式系统轻量级Modbus通信库的5大创新与实战指南 【免费下载链接】nanoMODBUS A compact MODBUS RTU/TCP C library for embedded/microcontrollers 项目地址: https://gitcode.com/gh_mirrors/na/nanoMODBUS nanoMODBUS是一个专为嵌入式系统设…...

Linux主机名管理进阶:除了hostnamectl,你还需要知道这些配置文件和坑

Linux主机名管理进阶&#xff1a;从配置文件到云环境的深度实践 在Linux系统中&#xff0c;主机名远不止是一个简单的标识符。它像系统的DNA&#xff0c;贯穿于网络通信、服务发现、日志追踪等各个环节。许多管理员习惯使用hostnamectl命令快速修改主机名&#xff0c;却对背后的…...

终极开源ZPL虚拟打印机:告别物理设备,高效调试条码标签

终极开源ZPL虚拟打印机&#xff1a;告别物理设备&#xff0c;高效调试条码标签 【免费下载链接】Virtual-ZPL-Printer An ethernet based virtual Zebra Label Printer that can be used to test applications that produce bar code labels. 项目地址: https://gitcode.com/…...

html标签如何标注作者信息_meta name=author写法【解答】

...

基于Vue 3与SSE的Dify AI聊天前端开发实战与部署指南

1. 项目概述&#xff1a;一个现代化的Dify AI聊天前端如果你正在寻找一个开箱即用、界面美观且功能现代的Dify AI聊天界面&#xff0c;那么LeeAirQ/Dify-Web这个项目值得你花时间了解一下。作为一个长期混迹在AI应用开发圈子的开发者&#xff0c;我见过太多后端强大但前端简陋的…...

5分钟搞定B站视频下载:DownKyi哔哩下载姬终极免费方案

5分钟搞定B站视频下载&#xff1a;DownKyi哔哩下载姬终极免费方案 【免费下载链接】downkyi 哔哩下载姬downkyi&#xff0c;哔哩哔哩网站视频下载工具&#xff0c;支持批量下载&#xff0c;支持8K、HDR、杜比视界&#xff0c;提供工具箱&#xff08;音视频提取、去水印等&#…...

MikroTikPatch未来展望:RouterOS 7.x新特性适配与路线图

MikroTikPatch未来展望&#xff1a;RouterOS 7.x新特性适配与路线图 【免费下载链接】MikroTikPatch MikroTik RouterOS Patch Public Key and Generate License 项目地址: https://gitcode.com/gh_mirrors/mikr/MikroTikPatch MikroTikPatch作为RouterOS系统的重要工具…...

2026年电工杯比赛思路、Python代码、Matlab代码、论文(持续更新中......)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

三月七小助手:星穹铁道自动化工具如何帮你每天节省30分钟游戏时间

三月七小助手&#xff1a;星穹铁道自动化工具如何帮你每天节省30分钟游戏时间 【免费下载链接】March7thAssistant 崩坏&#xff1a;星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 你是否每天花费大量时间在《崩坏&#…...