SQL-Hive中Select From怎么用

技术SQL-Hive中Select From怎么用这篇文章主要介绍了SQL-Hive中Select From怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解

本文主要介绍如何在SQL-Hive中使用Select From,具有一定的参考价值。有兴趣的朋友可以参考一下。希望大家看完这篇文章后收获多多。让边肖带你去了解它。

00-1010查询指定的一列或多列,命令如下:

SELECT列名1,列名2,helliphellipFROM表名;查询表中的所有字段时,可以使用*表示所有字段。星号(*)是选择所有行的快捷方式。顺序如下:

选择*从表名;如果我们想查询表t_od_use_cnt中所有的user_id和use_cnt,具体命令如下:

选择user_id,使用_ cntFROMapp.t _ od _ use _ cnt注意:app是数据库名称。如果当前查询表与当前使用的数据库一致,可以省略。

在Hive中这样写的00-1010在语法上是正确的(没有分区),但是在实际工作中很可能会给出一个错误。

由于Hive中表内数据量巨大,为了防止用户误扫描整个表,可以设置查询分区表时必须增加分区限制。例如,在这里,我们的分区字段是date_8的日期字段,工作中的表将要求我们限制必须查询的分区数据的天数。这里我们可以输入设置参数进行模拟,命令如下:

hive(app)sethive . mapred . mode;hive . mapred . mode=nonstrict ive(app)sethive . mapred . mode=strict;hive(app)sethive . mapred . mode;Hive.mapred.mode=strict然后我们重新执行上面的查询语句,出现以下错误:

hive(app)SELECTuser_id,use _ cntFROMapp.t _ od _ use _ cntFailed:语义异常[错误10041] 3360没有为别名“t _ OD _ use _ CNT”表“t _ OD _ use _ CNT”配置单元(app)预测的分区这个问题可以通过使用where语句解决,如下所示:

选择user_id,使用_ cntfrom app . t _ od _ use _ CNT where date _ 8=' 20210420 ';00-1010以上的查询语句会返回所有被查询的数据,但有时我们只需要确认表中的数据内容,或者指定行数据,比如只有100行,那么我们只需要在查询语句后添加(限制数量)。

查询表t_od_use_cnt中的前五行数据。命令如下:

选择user_id,使用_ cntfrom app . t _ od _ use _ CNT where date _ 8=20190101 limit 5;操作结果如下:

配置单元(应用程序)选择用户标识,使用

se_cnt           > WHERE date_8 = 20210420 Limit 5; OK user_id  use_cnt 10000  6 10001  49 10002  23 10003  1 10004  29 Time taken: 0.829 seconds, Fetched: 5 row(s) hive (app)>

04-列四则运算

在查询时可以对数值类型的字段进行加减乘除和取余等四则运算

SQL-Hive中Select From怎么用

下面我们将表t_od_use_cnt中use_cnt列和is_active列相乘得到一个新列,其他用法依次类推。

hive (app)> SELECT user_id           >       ,use_cnt           >       ,is_active           >       ,use_cnt * is_active           > FROM app.t_od_use_cnt           > WHERE date_8 = 20210420 Limit 5; OK user_id  use_cnt  is_active  _c3 10000  6  1  6 10001  49  1  49 10002  23  1  23 10003  1  0  0 10004  29  1  29 Time taken: 0.124 seconds, Fetched: 5 row(s) hive (app)>

05-列别名

可以看到上面的例子中我们通过两个列相乘人为制造出一个新列,系统默认将其列名起为_c3。通常有必要给这些新产生的列起一个别名。已有列的列名如果含义不清晰也可以通过起别名的方式进行更改。不过别名只在本条SQL语句中生效,不影响原表中的字段名。

这里顺便介绍一下字段命名规则:

1.不能和已有字段重复

2.只能包括小写字母(a-z)、数字(0-9)、下划线(_)

3.以字母开头

4.单词之间用下划线_分割

这里我们将别名起为active_use_cnt,在列后面加 AS active_use_cnt即可。另AS可以省略,只用空格分隔别名也可以生效

hive (app)> SELECT user_id           >       ,use_cnt           >       ,is_active           >       ,use_cnt * is_active AS active_use_cnt           > FROM app.t_od_use_cnt           > WHERE date_8 = 20210420 Limit 5; OK user_id  use_cnt  is_active  active_use_cnt 10000  6  1  6 10001  49  1  49 10002  23  1  23 10003  1  0  0 10004  29  1  29 Time taken: 0.239 seconds, Fetched: 5 row(s) hive (app)>

感谢你能够认真阅读完这篇文章,希望小编分享的“SQL-Hive中Select From怎么用”这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/142068.html

(0)

相关推荐

  • 国有商业银行有哪几家,九大商业银行是几个银行

    技术国有商业银行有哪几家,九大商业银行是几个银行商业银行包括: 四大国有银行:工商银行,农业银行,中国银行,建设银行; 其他股份制商业银行:交通银行,民生银行,浦东发展银行,福建兴业银行,广东发展银行,光大银行,招商银行

    生活 2021年10月29日
  • Python的logger怎么配置

    技术Python的logger怎么配置这篇文章主要介绍“Python的logger怎么配置”,在日常操作中,相信很多人在Python的logger怎么配置问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望

    攻略 2021年12月1日
  • 如何解决JVM空闲堆内存不释放回OS的问题

    技术如何解决JVM空闲堆内存不释放回OS的问题今天就跟大家聊聊有关如何解决JVM空闲堆内存不释放回OS的问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。JDK

    攻略 2021年10月23日
  • 如何借力Docker搞定MySQL主从复制!

    技术如何借力Docker搞定MySQL主从复制!如何借力Docker搞定MySQL主从复制!,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。不过很多小伙伴反映

    攻略 2021年10月25日
  • SqlServer Mysql数据库修改自增列的值及相应问题的解决方案是怎样的

    技术SqlServer Mysql数据库修改自增列的值及相应问题的解决方案是怎样的今天就跟大家聊聊有关SqlServer Mysql数据库修改自增列的值及相应问题的解决方案是怎样的,可能很多人都不太了解,为了让大家更加了

    攻略 2021年11月30日
  • SQL92标准隔离级别有哪些

    技术SQL92标准隔离级别有哪些本篇内容主要讲解“SQL92标准隔离级别有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL92标准隔离级别有哪些”吧!

    攻略 2021年12月3日