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)

相关推荐

  • mysql中如何进行数据压缩性能对比

    技术mysql中如何进行数据压缩性能对比这篇文章给大家分享的是有关mysql中如何进行数据压缩性能对比的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1. 测试环境1.1 软硬件一台 64位 2

    攻略 2021年11月6日
  • xamarin开发常见错误总结–the operation was canceled

    技术xamarin开发常见错误总结–the operation was canceled xamarin开发常见错误总结–the operation was canceled1.1.1 操作被取消异

    礼包 2021年12月1日
  • 顺序志愿,学考志愿填报顺序重要吗

    技术顺序志愿,学考志愿填报顺序重要吗重要的,一般是按顺序录取,所以第一志愿很重要顺序志愿。考生要按照招生专业对选考科目的要求填报志愿,只有符合选考科目要求才能报考相应专业。考生须熟知平行志愿投档原则。平行志愿投档时按照“

    生活 2021年10月31日
  • 使用Redis之前5个必须了解的事情有哪些

    技术使用Redis之前5个必须了解的事情有哪些这篇文章给大家介绍使用Redis之前5个必须了解的事情有哪些,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。使用Redis开发应用程序是一个很愉快的过程,

    攻略 2021年11月10日
  • 向日葵的特点是什么,向日葵最主要的特点是什么?谢谢

    技术向日葵的特点是什么,向日葵最主要的特点是什么?谢谢向日葵最主要的特点:一向日葵的特点是什么、外形特点向日葵的茎直立生长,植株高度在1-3. 5m之间。它的叶片为广卵形,正反两面都长有绒毛,并且比较粗糙,叶缘处还长有锯

    生活 2021年10月30日
  • [NOIP2016普及组]魔法阵

    技术[NOIP2016普及组]魔法阵 [NOIP2016普及组]魔法阵不是枚举暴力,也不是推式子 $\mathcal{O(1)}$,而是两者的有机结合——通过数学推导减少枚举量,满足时间复杂度要求。很大

    礼包 2021年11月11日