zoukankan      html  css  js  c++  java
  • Hive——基本DML语句

    Hive——基本DML语句

    DML:Data Manipulation Language(数据操作语言,与关系型数据库相似)

    官方手册:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DML

    一、加载数据到hive表中

    1、从文件系统加载数据入库

    LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, 
    partcol2=val2 ...)]
      
    LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (partcol1=val1, 
    partcol2=val2 ...)] [INPUTFORMAT 'inputformat' SERDE 'serde'] (3.0 or later)

    说明:

    [local]:如果加上表示本地地址,如果没有表示HDFS上的地址。
    [overwrite]:如果加上表示覆盖之前的数据,如果没有表示追加之前的数据。
    [partition_sepc]:如果加上表示加载进相应的分区。

    2、从其他表中装载

    INSERT OVERWRITE TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...) [IF NOT EXISTS]] 
        select_statement1 FROM  from_statement;
    INSERT INTO TABLE tablename1 [PARTITION (partcol1=val1, partcol2=val2 ...)] select_statement1 
        FROM from_statement;

    (其中插入的字段要和查询的字段要保持一致)

    二、导出hive 表中数据到文件系统

    INSERT OVERWRITE [LOCAL] DIRECTORY directory1
      [ROW FORMAT row_format] [STORED AS file_format] (Note: Only available starting with Hive 0.11.0)
      SELECT ... FROM ...

    注意: 输出到HDFS,有些CDH版本不支持; 

               输出到本地文件系统和HDFS,取决于LOCAL关键字

    也可以用linux重定向导出

    hive -e "select * from emp limit 5"  > file

    (数据的导入导出常用sqoop)

    三、基本sql

    hive>select * from emp;
    hive>select * from emp where ename='...';hive>select * from emp where deptno=10;
    hive>select * from emp where sal between 800 and 1500;
    hive>select * from emp where ename in ('SMITH','WARD');
    hive>select count(1),max(sal),min(sal),avg(sal) from emp;//聚合函数 – max、min、count、sum、avg
    hive>select deptno,avg(sal) from emp group by deptno;//分组函数 – group by
     
    hive>select ename, sal, 
         case 
         when sal > 1 and sal <= 1000 then 'LOWER'
         when sal > 1000 and sal <= 2000 then 'MIDDLE'
         when sal > 2000 and sal <= 4000 then 'HIGH'
         ELSE 'HIGHEST' end
         from emp; //case when

    四、export/import https://cwiki.apache.org/confluence/display/Hive/LanguageManual+ImportExport

    EXPORT TABLE tablename [PARTITION (part_column="value"[, ...])]
      TO 'export_target_path' [ FOR replication('eventid') ]
     
    IMPORT [[EXTERNAL] TABLE new_or_original_tablename [PARTITION (part_column="value"[, ...])]]
          FROM 'source_path'
          [LOCATION 'import_target_path']
        Replication usage
  • 相关阅读:
    sqlserver2005新特性介绍
    Sql 数据库 用户密码MD5加密
    easyui datagrid
    JQ js 对数组的操作
    c#2.0锐利体验《泛型编程》读书笔记
    jQuery EasyUI DataGrid Checkbox 数据设定与取值
    数据库的常用命令
    关于background-image设置背景图片
    Css背景设置 、
    实时监听输入框值变化的完美方案:oninput & onpropertychange
  • 原文地址:https://www.cnblogs.com/jnba/p/10673716.html
Copyright © 2011-2022 走看看