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)

相关推荐

  • SpringCloud分布式微服务b2b2c电子商务分布式微服务中docker-feign-hystrix的示例分析

    技术SpringCloud分布式微服务b2b2c电子商务分布式微服务中docker-feign-hystrix的示例分析这篇文章主要介绍SpringCloud分布式微服务b2b2c电子商务分布式微服务中docker-fe

    攻略 2021年11月19日
  • 什么是分布式数据库和TIDB 整体架构

    技术什么是分布式数据库和TIDB 整体架构这篇文章给大家介绍什么是分布式数据库和TIDB 整体架构,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。TIDB 是一个分布式,强一致的可水平扩展的关系型数据

    攻略 2021年12月1日
  • 白凡士林的作用与用途,白凡士林可以用来护肤吗

    技术白凡士林的作用与用途,白凡士林可以用来护肤吗凡士林是当今世界性价比最高的护肤品,它的价格并不高,但是它的价值很高。因此有很多经济拮据却非常爱美的人会选择凡士林。不过,也有人担心凡士林会有副作用,担心用凡士林擦脸是不合

    生活 2021年10月19日
  • spring log4j配置(log4j配置详解)

    技术logger4j.properties和log4j.xml怎么配置这篇文章主要介绍“logger4j.properties和log4j.xml怎么配置”,在日常操作中,相信很多人在logger4j.propertie

    攻略 2021年12月17日
  • 怎么用ps换背景颜色,PS如何抠图替换背景色

    技术怎么用ps换背景颜色,PS如何抠图替换背景色1怎么用ps换背景颜色、打开要用ps进行抠图和换背景的图片,直接使用快捷键Ctrl+O打开,或在【文件】中选择【打开】,找到相应的素材点击即可,如下图所示:2、图片打开后,

    生活 2021年10月19日
  • 如何在lambda表达式中使用引用形式捕捉局部变量

    技术如何在lambda表达式中使用引用形式捕捉局部变量本篇文章为大家展示了如何在lambda表达式中使用引用形式捕捉局部变量,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获F.52

    攻略 2021年11月10日