zoukankan      html  css  js  c++  java
  • Hive导入数据

    1.导入数据

    除了前面使用Load Data方式把文件复制或移动到表的目录外,还有以下几种方式:

    1). Insert Overwrite / Into Table 

    hive> insert overwrite table school     
        > select age,name from student;

     2). 对于分区的表,可以使用Partition子句来指明数据要插入哪个分区:

      注意:对于查询出的值不满足分区表列的类型,则会插入NULL

    insert overwrite table logs
        partition(date='2015-01-01',country='CN')
        select name,age
        from student;

    3) [动态分区插入]可以在Select语句中通过使用分区值来动态指明分区 

    //必须指定,不然报错
    set hive.exec.dynamic.partition.mode=nonstrict;


    INSERT
    OVERWRITE TABLE target PARTITION (dt) select col1,col2,dt from source;

    4) 当前Hive不支持insert into table T_Name values(v_2,v_2); 但可以使用下面语句达到此效果

    from stu
    insert into table stu
    select 99,'lisi',2
    limit 1;

    2.多表插入

      在HQL中,可以把Insert语句倒过来,把From子句放在最前面,查询的效果是一样的:

    from student
        insert overwrite table logs
        partition(date='2015-01-01',country='CN')
        select age,name;

      可以在同一个查询中使用多个Insert子句。这种“多表插入”方法比使用多个单独的INSERT语句效率更高,因为只需要扫描一遍源表就可以生成多个不相交的输出。

    FROM records2
    
    INSERT OVERWRITE TABLE stations_by_year
    SELECT year,COUNT(DISTINCT station)
             GROUP BY year
    
    INSERT OVERWRITE TABLE records_by_year
    SELECT year,COUNT(1)
             GROUP BY year
    
    INSERT OVERWRITE TABLE good_redcords_by_year
    SELECT year,COUNT(1)
                 WHERE temperature !=9999
                    AND (quality=0 OR quality=1 OR quality=4 OR quality=5 OR quality=9)
                GROUP BY year;

    这里只有一个源表(records2),但有三个表用于存放针对源表的三种不同查询所生成的结果。 

    3.Create Table … Aa Select

    • 把Hive查询的输出结果存放到一个新的表往往非常方便,这是因为输出结果太多,不适宜显示在控制台上或基于输出结果还有其他后续处理。新表的列定义是从Select 子句所检索的列导出的。
    • CTAS (Create Table ... As Select的简称) 操作是原子的,因此如果Select查询由于某种原因失败,是不会创建新表的。
    • hive的跨数据库查询和普通关系型数据库一样,database.T_Name(default.logs)。
    • 下面语句:logs是分区表,而新cteate的是普通表。  
    hive> create table t081901       
        > as                         
        > select * from default.logs; 
  • 相关阅读:
    手把手教你利用create-nuxt-app脚手架创建NuxtJS应用
    初识NuxtJS
    webpack打包Vue应用程序流程
    用选择器代替表格列的筛选功能
    Element-UI
    Spectral Bounds for Sparse PCA: Exact and Greedy Algorithms[贪婪算法选特征]
    Sparse Principal Component Analysis via Rotation and Truncation
    Generalized Power Method for Sparse Principal Component Analysis
    Sparse Principal Component Analysis via Regularized Low Rank Matrix Approximation(Adjusted Variance)
    Truncated Power Method for Sparse Eigenvalue Problems
  • 原文地址:https://www.cnblogs.com/skyl/p/4736634.html
Copyright © 2011-2022 走看看