官网文档0.2.37:https://prestodb.io/docs/current/
手动安装:参考原文:https://blog.csdn.net/liyaya0201/article/details/102700306
docker 版: 参考:https://hub.docker.com/r/starburstdata/presto/
if connect hive . need config:
vim hive-site.xml
add:
<property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> <property> <name>datanucleus.schema.autoCreateAll</name> <value>true</value> </property> <property> <name>hive.metastore.uris</name> <value>thrift://hadoop001:9083</value> </property>
启动Hive Metastore :
nohup bin/hive --service metastore >/dev/null 2>&1 &
idea连接 presto 操作:
package com.ruozedata.bigdata.spark.sql01 import java.sql.DriverManager object PrestoApp { def main(args: Array[String]): Unit = { Class.forName("com.facebook.presto.jdbc.PrestoDriver") val connection = DriverManager.getConnection("jdbc:presto://spark000:8080/catalog","root",null) val stmt = connection.createStatement() val sql = "select e.empno, e.ename, e.deptno, d.dname from hive.wuji_spark.emp e join mysql.wuji_spark.dept d on e.deptno = d.deptno" val resultSet = stmt.executeQuery(sql) while (resultSet.next()){ val empno = resultSet.getInt("empno") val ename = resultSet.getString("ename") val deptno = resultSet.getString("deptno") val dname = resultSet.getString("dname") println(empno + "\t" + ename + "\t" + deptno + "\t" + dname) } resultSet.close() stmt.close() connection.close() } } 原文链接:https://blog.csdn.net/liyaya0201/java/article/details/102700306
依赖:
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.62</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.8.1</version> </dependency> <dependency> <groupId>com.facebook.presto</groupId> <artifactId>presto-jdbc</artifactId> <version>0.234.1</version> </dependency>
改进:
public static void main(String[] args) throws SQLException, ClassNotFoundException { Class.forName("com.facebook.presto.jdbc.PrestoDriver"); Connection connection = DriverManager.getConnection("jdbc:presto://192.168.18.129:8881/mongodb/swift","hadoop",null); ; Statement stmt = connection.createStatement(); String sql="show tables"; sql="select * from mongodb.swift.booking "; JSONArray array = new JSONArray(); ResultSet rs = stmt.executeQuery(sql); ResultSetMetaData metaData = rs.getMetaData(); int columnCount = metaData.getColumnCount(); // 遍历ResultSet中的每条数据 while (rs.next()) { JSONObject jsonObj = new JSONObject(); // 遍历每一列 for (int i = 1; i <= columnCount; i++) { String columnName = metaData.getColumnLabel(i); String value = StringUtils.isBlank(rs.getString(columnName)) ? "" : rs.getString(columnName); jsonObj.put(columnName, value); } array.add(jsonObj); } System.err.println(array); rs.close(); connection.close(); }
分类:
presto
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
2018-06-20 Sonar及其eclipse插件的安装 详细 http://www.importnew.com/10017.html
2018-06-20 sonar link 的安装与使用
2018-06-20 SonarLint(Sonar) 代码质量管理
2018-06-20 Basic64 编码解码
2018-06-20 字符串转码 将文本转为PDF