Hive“ANALYZE TABLE”如何从java执行

2024-03-23

我需要计算配置单元表中的行数,为此 我正在使用查询:

ANALYZE TABLE p_7 COMPUTE STATISTICS noscan

我想通过java获取结果,我正在尝试以下操作 代码并没有运气。我得到的错误是:

Exception in thread "main" java.sql.SQLException: The query did not generate a result set!
at org.apache.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:393)
at HiveJdbcClient.main(HiveJdbcClient.java:22)

我正在使用的代码是:

import java.sql.SQLException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.Statement;

import java.sql.DriverManager;

public class HiveJdbcClient {
private static String driverName = "org.apache.hive.jdbc.HiveDriver";
public static void main(String[] args) throws SQLException {
    try {
        Class.forName(driverName);
    } catch (ClassNotFoundException e) {

        e.printStackTrace();
        System.exit(1);
    }
    Connection con = DriverManager.getConnection("jdbc:hive2://localhost:10000/default", "hive", "");
    System.out.println("connected");
    Statement statement = con.createStatement();
    String query = "ANALYZE TABLE p_7 COMPUTE STATISTICS noscan";
    ResultSet res = statement.executeQuery(query);
}
}

我不知道如何执行查询,例如:

ANALYZE TABLE p_7 COMPUTE STATISTICS noscan

通过java。对此的任何帮助都会对我有很大帮助。谢谢。


使用不带“NOSCAN”的 ANALYZE TABLE 语句来计算行数。 注意:该语句不会产生resultSet对象。

要获取存储的统计信息,请使用以下语句。

DESCRIBE FORMATTED tableName

在输出中,行数列在参数数组中。使用正则表达式来提取它。

这是示例代码:

String analyzeQuery = "ANALYZE TABLE p_7 COMPUTE STATISTICS";
String describeQuery = "DESCRIBE FORMATTED p_7";

stmt.execute(analyzeQuery);
StringBuilder sb = new StringBuilder();
try (ResultSet rs = stmt.executeQuery(describeQuery)) {
   while (rs.next()) {
       int count = rs.getMetaData().getColumnCount();
       for (int j = 1; j <= count; j++) {
          sb.append(rs.getString(j));
       }
   }
}
System.out.println("Output: "+ sb.toString());

Refer https://cwiki.apache.org/confluence/display/Hive/StatsDev https://cwiki.apache.org/confluence/display/Hive/StatsDev有关表和分区统计信息的详细信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hive“ANALYZE TABLE”如何从java执行 的相关文章

  • Hadoop 安全模式恢复 - 花费太长时间!

    我有一个包含 18 个数据节点的 Hadoop 集群 我在两个多小时前重新启动了名称节点 并且名称节点仍处于安全模式 我一直在寻找为什么这可能花费太长时间 但找不到好的答案 发帖在这里 Hadoop 安全模式恢复 花费大量时间 https
  • 将多个前缀行过滤器设置为扫描仪 hbase java

    我想创建一台扫描仪 它可以为我提供带有 2 个前缀过滤器的结果例如 我想要其键以字符串 x 开头或以字符串 y 开头的所有行 目前我知道只能使用一个前缀 方法如下 scan setRowPrefixFilter prefixFiltet 在
  • mariadb: jdbc: setTimestamp 截断毫秒

    在我看来 如果我使用准备好的语句将它们插入到我的 mariadb 中 毫秒就会被截断 谷歌搜索并不成功 我发现了很多类似的问题 这些问题要么已解决 要么不适用 但很难相信我是唯一一个遇到这个问题的人 所以我想在向 mariadb 提交错误之
  • 在 Hive 中分解一行 XML 数据

    我们将 XML 数据作为名为 XML 的单个字符串列加载到 Hadoop 中 我们正在尝试检索数据级别 并将其标准化或分解为单行进行处理 你知道 就像表格一样 已经尝试过分解功能 但没有得到我们想要的 示例 XML
  • PostgreSQL JDBC4 的连接池

    最近我从以下网站下载了 PostgreSQL 的 JDBC 驱动程序here https jdbc postgresql org download html 由于我使用的是 Java 1 7 JVM 并且它是这样写的 如果您使用 1 6 或
  • 为什么组合器输入记录的数量比映射的输出数量多?

    Combiner 在 Mapper 之后 Reducer 之前运行 它将接收给定节点上的 Mapper 实例发出的所有数据作为输入 然后它将输出发送到Reducers 因此组合器输入的记录应小于映射输出的记录 12 08 29 13 38
  • 超时后如何重新建立 JDBC 连接?

    我有一个长时间运行的方法 它通过 EntityManager TopLink Essentials 执行大量本机 SQL 查询 每个查询只需要几毫秒即可运行 但查询数量却有数千个 这发生在单个 EJB 事务内 15 分钟后 数据库关闭连接
  • 在 Hadoop 中处理带标头的文件

    我想在 Hadoop 中处理很多文件 每个文件都有一些头信息 后面跟着很多记录 每个记录都存储在固定数量的字节中 对此有何建议 我认为最好的解决方案是编写一个自定义的InputFormat http hadoop apache org co
  • Sqoop mysql错误-通信链路故障

    尝试运行以下命令 sqoop import connect jdbc mysql 3306 home credit risk table bureau target dir home sqoop username root password
  • 使用 python 从 hive 读取数据时的性能问题

    我在 hive 中有一个表 其中包含 351 837 110 MB 大小 记录 我正在使用 python 读取该表并写入 sql server 在此过程中 从 hive 读取数据到 pandas dataframe 需要很长时间 当我加载整
  • 猪如何过滤不同的对(对)

    我是猪的新手 我有一个 Pig 脚本 它在两个元素之间生成制表符分隔的对 每行一对 例如 John Paul Tom Nik Mark Bill Tom Nik Paul John 我需要过滤掉重复的组合 如果我使用 DISTINCT 我会
  • JDBC中为什么要关闭连接?如果我们不这样做,会发生什么

    在java中与数据库通信 我们经常遵循以下步骤 加载驱动程序 建立连接 创建声明或PreparedStatement get the ResultSet 关闭连接 我很困惑我们应该关闭连接 都说创建连接很昂贵 所以为什么我们不能这样做 st
  • Oozie SSH 操作

    Oozie SSH 操作问题 Issue 我们正在尝试在集群的特定主机上运行一些命令 我们为此选择了 SSH Action 我们面对这个 SSH 问题已经有一段时间了 这里真正的问题可能是什么 请指出解决方案 logs AUTH FAILE
  • 获取 emr-ddb-hadoop.jar 将 DynamoDB 与 EMR Spark 连接

    我有一个 DynamoDB 表 需要将其连接到 EMR Spark SQL 才能对该表运行查询 我获得了带有发行标签 emr 4 6 0 和 Spark 1 6 1 的 EMR Spark Cluster 我指的是文档 使用 Spark 分
  • 在 Android 中使用 SQL (JDBC) 数据库

    在旧的 Java 应用程序中 我使用以下代码连接到 SQL 数据库并将其用于某些查询 private Connection dbConnection null System setProperty derby system home C C
  • 当气流 initdb 时,导入错误:无法导入名称 HiveOperator

    我最近安装了airflow对于我的工作流程 在创建项目时 我执行了以下命令 airflow initdb 返回以下错误 2016 08 15 11 17 00 314 init py 36 INFO Using executor Seque
  • java.sql.SQLException:在结果集开始之前[重复]

    这个问题在这里已经有答案了 我已尝试使用以下代码来检索存储在数据库中的图像 我创建了一个名为image db包含一个名为的表image details 该表有两个字段 id and image path两者都是类型mediumblob 我在
  • 如何将Hive数据表迁移到MySql?

    我想知道如何将日期从 Hive 转移到 MySQL 我看过有关如何将 Hive 数据移动到 Amazon DynamoDB 的示例 但没有看到有关如何将 Hive 数据移动到 MySQL 等 RDBMS 的示例 这是我在 DynamoDB
  • 如何在具有动态列的表中插入值 Jdbc/Mysql

    我想在具有动态列的表中添加值 我设法创建一个包含动态列的表 但我不知道如何插入数据 Create Table sql CREATE TABLE MyDB myTable level INTEGER 255 int columnNumber
  • 遍历 ArrayWritable - NoSuchMethodException

    我刚刚开始使用 MapReduce 并且遇到了一个奇怪的错误 我无法通过 Google 回答该错误 我正在使用 ArrayWritable 制作一个基本程序 但是当我运行它时 在Reduce过程中出现以下错误 java lang Runti

随机推荐

  • 从 JComboBox 获取值

    I have JComboBox有 2 列 我有JButton 当我点击JButton 我需要得到结果JComboBox分别从第一列和秒列中选择值 我该怎么办 另外 如何设置 JComboBox 的标题 代码 public class Co
  • 如何从 Drools 列表中获取最大最小项目

    我有课 class Person public Date dateOfBirth public List
  • .Net4 应用程序中托管的 .Net2 程序集在 x86 中比在 AnyCpu 模式中表现更好?

    我有一个引用第 3 方 Net2 程序集的 Net4 WinForms 应用程序 其中包含图形密集型视觉控件 我注意到一个huge当我不小心将应用程序从 AnyCpu 切换到 x86 编译模式时 应用程序的视觉性能得到了改善 我的开发设备是
  • SSIS 对象变量计数?

    我在 BIDS 2008 中使用 SSIS 并且试图获取包含文件列表的对象变量的计数 关于如何做到这一点有什么想法吗 Thanks 您如何填充此对象变量 根据您填充变量的方式 可以列出更优雅的获取计数的方法 然而 这里有一个快速但肮脏的解决
  • 尽管删除了 IIS,但仍然设置了 IISMAJORVERSION 和 IISMINORVERSION

    我正在创建一个依赖于正在安装的 IIS 的安装程序 为了进行测试 我使用运行 Windows Server 2008 R2 的虚拟机 该虚拟机安装了 Web 服务器角色 我的安装程序使用此条件检查是否安装了 IIS
  • 如何使用 distutils 创建可执行的 .zip 文件?

    Python 2 6 及更高版本能够直接执行 zip 文件 如果 zip 文件包含 main py文件位于 zip 存档的顶部 我想利用此功能来提供我正在开发的工具的预览版本 该工具除了将 zip 文件复制到磁盘之外不需要安装任何内容 是否
  • 使用实体框架选择所有行

    我正在尝试使用实体框架从数据库中选择所有行进行操作 然后再将其发送到表单 var ptx modelname tablename ptx tablename Select 里面有什么 我使用了实体数据源 它提供了我想做的事情所需的一切 re
  • 如何使 div 跨越网格中的多行和多列?

    建立在上一个问题 https stackoverflow com questions 42946454 alternative to css grid layout but not tables 我正在尝试向我的网格布局添加更大的块 在最后
  • 阻止 iframe 设置parent.location(防止framebusting)

    我在自己的域上有一个网站 其中我将 iframe 包含到其他域上的其他网站以进行快速预览 问题是某些网站具有框架破坏代码 可以将用户从我的网站重定向 我怎样才能阻止这个 在 Framebuster 的情况下 即使根本不显示 iframe 也
  • 在对话框外部按下时如何关闭 DialogFragment?

    我正在使用一个DialogFragment 虽然我已成功设置图像以在按下时关闭 即关闭 对话框 但当用户单击对话框之外的任何位置时 我很难找到关闭对话框的方法 就像它与普通对话框一样 我以为会有某种 dialogFragment setCa
  • 枚举作为 TypeScript 中的参数

    是否可以将参数的类型设置为 Enum 像这样 private getRandomElementOfEnum e enum string var length number Object keys e length return e Math
  • 添加适用于 Firefox Webdriver 但不适用于 PhantomJS 的 Cookie

    我有一个带有饼干的泡菜 是通过以下命令创建的 def doLogin driver do login stuff pickle dump driver get cookies open cookies pkl wb 我有获取 cookie
  • 渲染新行的 HTML 规范?

    我正在尝试将一些简单的 HTML 文档 主要包含 div 和 br 标签 呈现为纯文本 但我在何时添加新行方面遇到了困难 我以为这会很简单 div and br 生成新的线条 但看起来有各种微妙的规则 例如 div one line div
  • 如何将两组 weka 实例合并在一起

    目前 我一次将一个实例从一个数据集复制到另一个数据集 有没有办法做到这一点 使字符串映射保持完整 mergeInstances 水平工作 是否有等效的垂直合并 这是我用来将多个 arff 文件中相同结构的数据集读取到一个大型数据集中的循环的
  • 如何在JPA中定义单向OneToMany关系

    我在 JPA 中的实体映射方面遇到以下问题 我有两个实体 第一个是查找 第二个是代表实体翻译的文本 现在我需要将 Lookup 绑定到 Text 但我不希望 Text 引用 Lookup 为了使事情变得更复杂 文本在这种关系中不使用其主键
  • 将行添加到命名范围

    我在 Google 表格中有一个命名范围 A1 K14 我想做的就是在命名范围的底部添加一个新行 这似乎是一项容易的任务 使用此代码不会扩展命名范围 并且我没有收到错误消息 它确实在命名范围之外插入一个新行 这不是我想要做的 如果我改为in
  • 带有单位编号/子前提的 Google 地方自动完成建议不会出现在响应数组中

    我正在使用 Google Places API 使用 javascript 自动完成地址 当我在输入框中输入地址的单元号和街道号时 它会在建议下拉列表中显示结果 但是当我选择地址时 操作 place changed 事件的侦听器没有任何地址
  • Rails:如何向包含变音符号的收件人发送电子邮件?

    我想发送一封包含以下设置的电子邮件 def registration confirmation user recipients user username lt user email gt from Netzwerk Muensterlan
  • 内连接与何处连接

    两者之间的性能 在 Oracle 中 是否存在差异 Select from Table1 T1 Inner Join Table2 T2 On T1 ID T2 ID And Select from Table1 T1 Table2 T2
  • Hive“ANALYZE TABLE”如何从java执行

    我需要计算配置单元表中的行数 为此 我正在使用查询 ANALYZE TABLE p 7 COMPUTE STATISTICS noscan 我想通过java获取结果 我正在尝试以下操作 代码并没有运气 我得到的错误是 Exception i