package com.spark.conn;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.sql.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class SparkConnection {
// 查询数据返回json
public String getJson(String jdbc_url,String sql) throws SQLException, ClassNotFoundException {
Connection connection = null;
// org.apache.hive.jdbc.HiveDriver
// Class.forName("org.apache.hive.jdbc.HiveDriver");
try {
connection = DriverManager.getConnection(jdbc_url);
List<Map<String,Object>> list = selectTable(connection,sql);
// 想办法把数组转成json
ObjectMapper mapper = new ObjectMapper();
return mapper.writeValueAsString(list);
} catch (Exception e) {
e.printStackTrace();
} finally {
if(connection != null)
connection.close();
}
return null;
}
// 查询数据返回List
public List<Map<String,Object>> getMaps(String jdbc_url,String sql) throws SQLException, ClassNotFoundException {
Connection connection = null;
//HiveDriver
// org.apache.hive.jdbc.HiveDriver
// Class.forName("org.apache.hive.jdbc.HiveDriver");
try {
connection = DriverManager.getConnection(jdbc_url);
return selectTable(connection,sql);
} catch (SQLException e) {
e.printStackTrace();
} finally {
if(connection != null)
connection.close();
}
return null;
}
// 执行查询
public List<Map<String,Object>> selectTable(Connection connection,String sql) {
//String sql = "select *from wf_process_hive_ro limit 10";
Statement stmt = null;
//ResultSet rs = null;
try {
stmt = connection.createStatement();
ResultSet set = stmt.executeQuery(sql);
List<Map<String,Object>> list = new ArrayList<>();
ResultSetMetaData metaData = set.getMetaData();
int columnCount = metaData.getColumnCount();
while(set.next()){
Map<String,Object> map = new HashMap<>();
for (int i = 1; i <= columnCount; ++i) {
String columnName = metaData.getColumnName(i).toLowerCase();
Object object = set.getObject(i);
map.put(columnName, object);
}
list.add(map);
}
return list;
//System.out.println("=====================================");
/*while (rs.next()) {
System.out.println(rs.getString(1) + "," + rs.getString(2));
}*/
//System.out.println("=====================================");
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(stmt);
//close(rs);
}
return null;
}
// 关闭Statement
private void close(Statement stmt) {
if (stmt != null) {
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
// 关闭ResultSet
private void close(ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
资源是java连接spark的源码,里面有支持连接hive,spark的方法,内部有两个方法,一个是getMaps,获取一个List<Map>对象,用于直接使用,一个是getJson,将获取到的数据转换成json,方便好用,不想下载的可以去我的博客去看 博客地址是:https://blog.csdn.net/qq_41113916/article/details/129176259
资源推荐
资源详情
资源评论
收起资源包目录
sparkExecuter.zip (34个子文件)
pom.xml 2KB
src
test
java
main
resources
application.yml 42B
java
com
baize
tool
sparkServer
controller
SparkController.java 785B
DemoController.java 354B
SparkServerApplication.java 331B
service
SparkService.java 248B
model
SparkInput.java 724B
impl
SparkServiceImpl.java 2KB
spark
conn
SparkConnection.java 4KB
.idea
jarRepositories.xml 864B
uiDesigner.xml 9KB
workspace.xml 3KB
misc.xml 541B
compiler.xml 723B
.gitignore 50B
encodings.xml 191B
target
classes
application.yml 42B
com
baize
tool
sparkServer
SparkServerApplication.class 774B
controller
SparkController.class 1KB
DemoController.class 663B
service
SparkService.class 405B
model
SparkInput.class 1015B
impl
SparkServiceImpl.class 2KB
spark
conn
SparkConnection.class 4KB
sparkExecuter-1.0.0.jar 130.63MB
sparkExecuter-1.0-SNAPSHOT.jar.original 9KB
test-classes
sparkServer.jar 9KB
maven-status
maven-compiler-plugin
compile
default-compile
createdFiles.lst 59B
inputFiles.lst 728B
testCompile
default-testCompile
createdFiles.lst 0B
inputFiles.lst 0B
sparkExecuter-1.0.0.jar.original 9KB
maven-archiver
pom.properties 65B
generated-test-sources
test-annotations
sparkExecuter-1.0-SNAPSHOT.jar 130.63MB
generated-sources
annotations
共 34 条
- 1
资源评论
妮蔻的学习天府
- 粉丝: 16
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于matlab实现文档+程序边缘计算任务卸载与资源调度的算法,是论文的源代码,具有价值.rar
- 什么是学生成绩管理系统c++以及学习学生成绩管理系统的意义
- 什么是词向量-以及学习关于了解词向量的意义
- 什么是mybatis动态sql以及学习mybatis动态sql的意义
- 华为数据治理方法论,包括:数据治理框架、数据治理组织架构、数据治理度量评估体系以及华为数据治理案例分享
- 基于matlab实现对表面肌电信号进行归一化处理,并对归一化后的图形显示 .rar
- 基于matlab实现单级倒立摆的 T-S 模型 包括 LMI 程序源码
- 图书管理系统(struts+hibernate+spring+ext).rar
- 基于matlab实现此压缩包包含语音信号处理中的语音变声代码加音频.rar
- STM32使用PWM驱动舵机并通过OLED显示
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功