Hive(五)——查询

  • SELECT… FROM语句,一般情况不再赘述,以下展示复合数据结构如何取值

    # 先提供几条数据与建表语句,方便随手练习
    John Doe!100000.0!Mary Smith$Todd Jones!Federal Taxes,0.2$State Taxes,0.05$Insurance,0.1!1 Michigan Ave.$Chicago$IL$60600
    Mary Smith!80000.0!Bill King!Federal Taxes,0.2$State Taxes,0.05$Insurance,0.1!100 Ontario St.$Chicago$IL$60601
    Todd Jones!70000.0!lili!Federal Taxes,0.15$State Taxes,0.03$Insurance,0.1!200 Chicago Ave.$Oak Park$IL$60700
    Bill King!60000.0!Huahua$Xixi!Federal Taxes,0.15$State Taxes,0.03$Insurance,0.1!300 Obscure Dr.$Obscuria$IL$60100CREATE TABLE employees (name STRING,salary FLOAT,subordinates ARRAY<STRING>,deductions MAP<STRING, FLOAT>,address STRUCT<street:STRING, city:STRING, state:STRING, zip:INT>) ROW FORMAT DELIMITED FIELDS TERMINATED BY '!' COLLECTION ITEMS TERMINATED BY '$' MAP KEYS TERMINATED BY ',' LINES TERMINATED BY '\n' STORED AS TEXTFILE;
    

    接下来就是查询复合数据类型的值

    # 先看下描述信息
    hive (default)> desc employees;
    name                    string
    salary                  float
    subordinates            array<string>
    deductions              map<string,float>
    address                 struct<street:string,city:string,state:string,zip:int># 查询array类型数据
    hive (default)> select subordinates from employees;
    ["Mary Smith","Todd Jones"]
    ["Bill King"]
    ["lili"]
    ["Huahua","Xixi"]
    hive (default)> select subordinates[0] from employees;
    Mary Smith
    Bill King
    lili
    Huahua# 查询map类型数据
    hive (default)> select deductions from employees;
    {"Federal Taxes":0.2,"StateTaxes":0.05,"Insurance":0.1}
    {"Federal Taxes":0.2,"State Taxes":0.05,"Insurance":0.1}
    {"Federal Taxes":0.15,"State Taxes":0.03,"Insurance":0.1}
    {"Federal Taxes":0.15,"State Taxes":0.03,"Insurance":0.1}
    hive (default)> select deductions['State Taxes'] from employees;
    0.05
    0.05
    0.03
    0.03# 查询struct类型数据
    hive (default)> select address from employees;
    {"street":"1 Michigan Ave.","city":"Chicago","state":"IL","zip":60600}
    {"street":"100 Ontario St.","city":"Chicago","state":"IL","zip":60601}
    {"street":"200 Chicago Ave.","city":"Oak Park","state":"IL","zip":60700}
    {"street":"300 Obscure Dr.","city":"Obscuria","state":"IL","zip":60100}
    hive (default)> select address.city from employees;
    Chicago
    Chicago
    Oak Park
    Obscuria
    
  • 使用正则表达式来指定列

    # 需要先设置属性才能使用正则
    set hive.support.quoted.identifiers=none;# 查询所有`s`开头的列的数据
    hive (default)> select name,`s.*` from employees;
    John Doe        100000.0        ["Mary Smith","Todd Jones"]
    Mary Smith      80000.0 ["Bill King"]
    Todd Jones      70000.0 ["lili"]
    Bill King       60000.0 ["Huahua","Xixi"]
    
  • 使用列值进行计算

    hive (default)> select upper(name),salary,deductions['Federal Taxes'],round(salary*(1-deductions['Federal Taxes'])) from employees;
    JOHN DOE        100000.0        0.2     80000.0
    MARY SMITH      80000.0 0.2     64000.0
    TODD JONES      70000.0 0.15    59500.0
    BILL KING       60000.0 0.15    51000.0
    

    当进行算术运算时,需要注意数据溢出或数据下溢问题,如果用户比较担心溢出和下溢,那么可以考虑在表模式中定义使用范围更广的数据类型。不过这样做的缺点是每个数据值会占用更多额外的内存。也可以使用特定的表达式将值转换为范围更广的数据类型。

  • 使用函数

    • 查看month 相关的函数

      show functions like ‘month

    • 查看 add_months 函数的用法

    ​ desc function add_months;

    • 查看 add_months 函数的详细说明并举例

    ​ desc function extended add_months;

Hive(五)——查询相关推荐

  1. php开发Hive Web查询

    自己闲的没事,用php写了一个hive的查询界面,顺便把开发过程和遇到的问题记录下来. 一.php Hive API的问题 默认情况下,Hive本身自带的php API是不太好使的.一个是路径有问题, ...

  2. Hadoop生态圈-hive五种数据格式比较

    Hadoop生态圈-hive五种数据格式比较 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.

  3. hive的条件查询语句_[一起学Hive]之九-Hive的查询语句SELECT

    关键字:Hive SELECT.ORDER BY.SORT BY.DISTRIBUTE BY.CLUSTER BY.Hive子查询.Hive虚拟列 八.Hive的查询语句SELECT 在所有的数据库系 ...

  4. 执行Hive的查询语句报错:java.lang.IllegalArgumentException: Does not contain a valid host:port authority: loca

    好不容易把Hive装完了,结果一执行Hive的查询语句运行MapReduce程序立马报错... log详细信息如下: Job running in-process (local Hadoop) Had ...

  5. impala查询数据与hive的查询数据比对(数据的校验)

    impala查询数据与hive的查询数据比对 先在cdh的hue中分别用impala和hive的查询数据对比 将impala的查询语句写入到shell脚本中 a=(`impala-shell -q ' ...

  6. 大数据面试重点之hive(五)

    HQL:行转列.列转行 可回答:Hive中怎么实现列转行,行转列? 问过的一些公司:Shopee(2021.07),美团(2021.08)x2 参考答案: 1.行转列:UDF聚合函数 相关函数 con ...

  7. 建立HBase的集群和HDInsight在Hadoop中使用Hive来查询它们

    建立HBase的集群和HDInsight在Hadoop中使用Hive来查询它们 在本教程中,您将学习如何创建和查询HDInsight使用HiveHadoop的HBase的表.下列步骤描述: •如何使用 ...

  8. Hive Select 查询数据

    Hive Select 查询数据 基本查询(Select-From) 全表和特定列查询 列别名 算术运算符 常用函数 Limit语句 Where语句 比较运算符(Between / In / Is N ...

  9. [Hive]子查询使用指南

    1.在from语句中使用子查询 Hive在0.12版本后就支持了from条件中子查询,例如: SELECT ... FROM (subquery) name ... SELECT ... FROM ( ...

  10. Hive基本查询语法

    基本使用规则 基本查询语句组成 select .. from ..join [tableName] on ..where ..group by ..having ..order by ..sort b ...

最新文章

  1. Maven学习详解(13)——Maven常用命令大全与pom文件讲解
  2. 命名人工智能最高奖,破译德军密码,却被祖国逼得自杀-6月7日
  3. Uniform Grid Quadtree kd树 Bounding Volume Hierarchy R树 搜索
  4. 使用numpy生成one_hot
  5. 如何在ashx页面获取Session值(未将对象引用设置到对象的实例) (转)
  6. 【dfs】无穷迷宫(jzoj 3924)
  7. 偶尔所得代码片(进程和锁相关)
  8. 差分隐私学习路线【定期更新】
  9. python字符串出栈方法_Python 实现字符串反转的9种方法
  10. 宝可梦世界无限极可以玩服务器吗,口袋妖怪世界无极限运行库
  11. 一步一步写算法(之选择排序)
  12. go -生成pb文件 -下
  13. ExtJs异步ajax调用和同步ajax调用公用方法(转)
  14. 山东联通中兴B860 AV1.1机顶盒 刷机问题解决
  15. postman接口测试
  16. matlab 谐波生成模块,simulink 谐波分析_matlab谐波分析_simulink中sign模块
  17. 相关系数——皮尔逊相关系数的公式及其理解
  18. net新的库相关的资源
  19. Excel日期格式转为常规文本格式
  20. 《当程序员的那些狗日日子》(八)床上等你

热门文章

  1. CStatic类的GDI双缓冲绘图
  2. Ubuntu18.04快捷键
  3. 当使用tensorflow时出现“the requested device apperas to be a GPU, but CUDA is not enabled”的解决办法
  4. 调试错误:ValueError: Protocol message Feature has no quot;featurequot; field.
  5. linux jdk路径
  6. 3.11-3.14 Hive 企业使用优化2
  7. 使用js生成条形码以及二维码
  8. Learning Scrapy笔记(零) - 前言
  9. Win7双屏显示设置
  10. Go Revel - Filters(过滤器链)