Hive 笔试题及参考答案.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

Hive笔试题及参考答案

一、选择题(每题5分,共30分)

下列关于Hive表的描述,错误的是()

A.外部表删除时仅删除元数据,不删除底层HDFS数据

B.分区表的分区字段本质是表的虚拟列,不存储在数据文件中

C.桶表的分桶字段必须是表中已存在的列,分桶后数据按哈希值均匀分布

D.内部表(管理表)删除时,元数据和HDFS数据会同时被删除,且不可恢复

Hive中用于将查询结果写入分区表的关键字是()

A.INSERTINTOB.INSERTOVERWRITEC.LOADDATAD.ALTERTABLE

下列哪种Hive优化手段主要用于解决“数据倾斜”问题()

A.启用MapJoinB.增加Reduce任务数C.分区裁剪D.列裁剪

关于Hive函数,下列说法正确的是()

A.UDF函数支持输入多条记录,输出一条记录

B.UDAF函数支持输入一条记录,输出多条记录

C.UDTF函数(如explode)可将一行数据拆分为多行

D.concat_ws函数的第一个参数是待拼接的字符串,后续参数是分隔符

Hive中存储格式中,支持列式存储且压缩比高、查询效率优的是()

A.TextFileB.SequenceFileC.ParquetD.RCFile

下列关于Hive动态分区的说法,错误的是()

A.动态分区需要开启参数hive.exec.dynamic.partition=true

B.动态分区默认模式是strict,要求至少有一个静态分区字段

C.动态分区的分区字段顺序必须和SELECT语句中对应字段顺序一致

D.动态分区插入数据时,分区目录会自动创建,无需手动提前创建

二、简答题(每题10分,共30分)

简述Hive中内部表和外部表的核心区别,以及各自的适用场景。

什么是Hive数据倾斜?常见的导致数据倾斜的场景有哪些?请给出2种解决数据倾斜的实际方案。

简述Hive分区表和桶表的区别,为什么分桶表查询效率可能更高?

三、SQL实操题(每题20分,共40分)

现有Hive表user_behavior,结构如下:

CREATETABLEuser_behavior(

user_idSTRING,--用户ID

item_idSTRING,--商品ID

category_idSTRING,--商品分类ID

behavior_typeSTRING,--行为类型(click:点击,buy:购买,collect:收藏)

create_timeSTRING--行为时间(格式:yyyy-MM-ddHH:mm:ss)

)

PARTITIONEDBY(dtSTRING)--按日期分区(格式:yyyyMMdd)

STOREDASPARQUET;

请编写SQL语句,统计2024年10月1日(dt当天,每个商品分类的“购买转化率”(购买次数/点击次数),要求结果保留2位小数,按转化率降序排序,只显示前10名分类。

现有两张Hive表:

表order_info(订单表):

CREATETABLEorder_info(

order_idSTRING,--订单ID

user_idSTRING,--用户ID

order_amountDECIMAL(10,2),--订单金额

order_timeSTRING--下单时间(格式:yyyy-MM-ddHH:mm:ss)

)

PARTITIONEDBY(dtSTRING)--按日期分区(格式:yyyyMMdd);

表user_info(用户表):

CREATETABLEuser_info(

user_idSTRING,--用户ID

user_nameSTRING,--用户名

genderSTRING,--性别(male/female/unknown)

ageINT,--年龄

register_timeSTRING--注册时间(格式:yyyy-MM-ddHH:mm:ss)

)

STOREDASORC;

请编写SQL语句,查询2024年10月(dt以

文档评论(0)

151****9429 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档