欢迎投稿

今日深度:

第十二天,

第十二天,


第十二天 - Hive基本操作 - Hive导入数据、统计数据 - HiveJDBC操作Hive

  • 第十二天 - Hive基本操作 - Hive导入数据、统计数据 - HiveJDBC操作Hive
      • 一、Hive基础知识补充
          • 概念
          • Hive基本操作(二)
      • 二、Hive SQL操作案例一:统计dataflow.log文件中的流量数据
          • 未指定分隔符
          • 指定分隔符
      • 三、Hive SQL操作案例二:
          • 通过navicat将sql文件转为txt
          • 将数据文件.txt导入到hive中
          • 对库中的信息进行查询操作
      • 四、HiveJDBC操作Hive
          • 准备工作
          • 编写代码

一、Hive基础知识补充

概念
  • Hive可以通过HiveJDBC进行操作,方便应用的封装
  • Hive有内置函数和语法,也可以编写自定义函数
  • Hive的数据类型,大部分与java中一致,其中long在hive中为bigint
  • 创建数据表时,需要和数据文件结构(数据类型、列数等)对应,特别是分隔符要正确
  • Hive默认不支持update和delete语句,但是可以通过函数实现,insert语句执行较慢,一般采用导入文件数据进行导入
  • Hive主要用于数据计算
Hive基本操作(二)
  • 切换数据库

    use {dbName};

  • 删除数据库

    drop database [if exists] {dbName} [cascade];

  • 查看当前库的所有表

    show tables [like ‘*’] [in database];

  • 创建表

    create database.table({col_name} {data_type},…)[row format delimited  fields terminated by ‘\t’  lines terminated by ‘\n’ ];

    []中用于指定分隔符

  • 增加字段

    alter table {tableName} add columns (new_colName data_type);

  • 查看表结构

    desc {tableName};

  • 重命名表名

    alter table {tableName} rename to {newName};

  • 删除表

    drop table if exists {tableName};

  • 导入数据

二、Hive SQL操作案例一:统计dataflow.log文件中的流量数据

未指定分隔符
指定分隔符

三、Hive SQL操作案例二:

通过navicat将sql文件转为txt
  • 导入sql文件

  • 将mysql中已有的数据导入到hive中

将数据文件.txt导入到hive中
对库中的信息进行查询操作

四、HiveJDBC操作Hive

准备工作
  • 打开HiveJDBC的远程监控服务端口

  • 在Eclipse中新建普通Java项目,右键项目新建文件夹lib

  • 导入共11个jar包到lib目录中,并且添加至构建路径

  • 从CentOS中的hive安装路径的conf目录下下载hive-log4j.properties至本地,放在src目录下并重命名为log4j.properties

  • 修改log4j.properties第19行为hive.root.logger=DEBUG,console,作用是在运行时能在控制台输出hive的运行状态信息

  • 控制台输出的信息不全面,如果要查看详细信息需要在CentOS中查看日志文件。日志文件的目录在hive安装路径的conf目录下hive-log4j.properties中配置的路径,

编写代码

Test01.java

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

public class Test01 {
    public static void main(String[] args) throws Exception{
        // 1.加载驱动
        Class.forName("org.apache.hive.jdbc.HiveDriver");
        // 2.打开连接
        Connection connection = DriverManager.getConnection("jdbc:hive2://SZ01:10010/test");
        // 3.获得操作对象
        Statement statement = connection.createStatement();
        // 4.操作Hive
        String sql = "select a.energyConsumption,sum(b.retail) from orders b LEFT JOIN type a  on a.id = b.typeId GROUP BY a.energyConsumption";
        // 5.接受结果
        ResultSet rs = statement.executeQuery(sql);
        while(rs.next()) {
            System.out.println(rs.getFloat(1) + " " +  rs.getString(2));
        }
        // 6.关闭连接
        rs.close();
        statement.close();
        connection.close();
    }
}

运行结果

www.htsjk.Com true http://www.htsjk.com/hive/33844.html NewsArticle 第十二天, 第十二天 - Hive基本操作 - Hive导入数据、统计数据 - HiveJDBC操作Hive 第十二天 - Hive基本操作 - Hive导入数据、统计数据 - HiveJDBC操作Hive 一、Hive基础知识补充 概念 Hive基本操作...
相关文章
    暂无相关文章
评论暂时关闭