美文网首页
Hive学习笔记

Hive学习笔记

作者: ghostdogss | 来源:发表于2019-03-07 11:25 被阅读0次

    1.建表语法:

        CREATE [EXTERNAL] TABLE [IF NOT EXISTS] table_name 

          [(col_name data_type [COMMENT col_comment], ...)] 

          [COMMENT table_comment] 

          [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] 

          [CLUSTERED BY (col_name, col_name, ...) 

          [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] 

          [ROW FORMAT row_format] 

          [STORED AS file_format] 

          [LOCATION hdfs_path]

    •CREATE TABLE 创建一个指定名字的表。如果相同名字的表已经存在,则抛出异常;用户可以用 IF NOT EXIST 选项来忽略这个异常

    •EXTERNAL 关键字可以让用户创建一个外部表,在建表的同时指定一个指向实际数据的路径(LOCATION)

    •LIKE 允许用户复制现有的表结构,但是不复制数据

        CREATE TABLE empty_key_value_store

        LIKE key_value_store;

    •COMMENT可以为表与字段增加描述

    •ROW FORMAT

        DELIMITED [FIELDS TERMINATED BY char] [COLLECTION ITEMS TERMINATED BY char]

            [MAP KEYS TERMINATED BY char] [LINES TERMINATED BY char]

       | SERDE serde_name [WITH SERDEPROPERTIES (property_name=property_value, property_name=property_value, ...)]

             用户在建表的时候可以自定义 SerDe 或者使用自带的 SerDe。如果没有指定 ROW FORMAT 或者 ROW FORMAT DELIMITED,将会使用自带的 SerDe。在建表的时候,用户还需要为表指定列,用户在指定表的列的同时也会指定自定义的 SerDe,Hive 通过 SerDe 确定表的具体的列的数据。

    例子:

    create table student (Snoint,Sname string,Sex string,Sageint,Sdept string)

    row format delimited fields terminated by','//声明分隔符

    stored as textfile;//声明储存方式

    2. 查询学生信息,按性别分区,在分区内按年龄有序

    1)select * from student order by sex, sage;

    2)set mapred.reduce.tasks=2;

    select * from student distribute by sex sort by sage;

    distribute by是按照指定的字段对数据进行划分到不同的reduce中

    第一的语句,我们只是按照性别和年龄排序

    第二个,我们设置了2个reduce,并且按照性别分区。sort by sage;

    理解sort by和order by的区别。order by是全局排序。而sort by是每个分区内部排序。

    3. 查询学生的姓名、课程名称和分数

    select student.sname, course.cname, sc.grade 

    from student join sc on student.sno= sc.sno

    join course on sc.cno=course.cno

    join后面跟要连接的表,on后面跟连接的条件。

    on和where是不同的

      -on指的连接条件

    -where是表链接后,再进一步按照where指定条件筛选

    相关文章

      网友评论

          本文标题:Hive学习笔记

          本文链接:https://www.haomeiwen.com/subject/gryqpqtx.html