Hadoop数据开发笔试题(一)

一、业务场景:考试记录编码转名称

a)、要求1:答案选项表只能关联一次
b)、要求2:答案顺序不能错位,没有选择项,置空

表一:考试记录表

考试人试卷名称题目编号答案编码
张三exam-a0101ACD

表二:答案选项表

试卷名称题号编号题目名称答案名称
exam-a0101您最近5年的职业A教师
exam-a0101您最近5年的职业B医生
exam-a0101您最近5年的职业C销售
exam-a0101您最近5年的职业D白领

需求一:

  • 请使用hive实现将考试记录的编码,转换成对应的项目名称及答案名称,关联后的结果如下:
考试人试卷名称题号编号题目名称答案A答案B答案C答案D
张三exam-a0101您最近5年的职业A教师NULL销售人员

答案:

第一步:把考试记录表列转行

  • 在Hive中创建考试记录表exam_record,SQL语句如下:
create table exam_record (
testers string,
test_papers string,
title_number string,
answer_id string
) ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t";
  • 创建答案选项表(answer_option)
create table answer_option (
test_paper string,
qid_number string,
title_name string,
answer string,
name string
) ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t";

第二步:本地Vi编辑好后把数据加载进去

1、把数据加载到exam_record表中:

load data local inpath '/home/hadoop/data/test.txt' overwrite into table exam_record;

2、把数据加载到answer_option表中:

load data local inpath '/home/hadoop.data/test.txt' overwrite into table answer_option;

第三步:使用如下SQL语句完成exam_record列转行

select testers, test_papers, title_number, answer
from
exam_record
lateral view explode(split(answer_id,"")) b AS answer;

第四步:基于3的分析把结果创建到一张临时表上

create table tmp_exam_record
as
select testers, test_papers, title_number, answer
from
exam_record
lateral view explode(split(answer_id,"")) b AS answer;

第五步:把四中的临时表和答案选项表进行join操作


二、collect_list()、collect_set()这两个函数的区别是什么,参数类型有什么限制?

  • 它们都是将分组中某列转换为一个数组返回,区别是一个collect_set去重,而collect_list不去重。

  • https://blog.csdn.net/zhikanjiani/article/details/100980233

三、内部表(管理表Managed table)和外部表的区别?

参考博客:

  • https://blog.csdn.net/zhikanjiani/article/details/89075266#id_5.2

1、managed_table(内部表)

  • 删除内部表:数据(hdfs上的数据)+ 元数据都删除了

2、external_table

  • 删除外部表:数据不删除,MySQL中元数据信息删除

四、Hive的视图和Oracle数据库的视图异同点

五、用2种方法:分别1句SQL实现下列的统计逻辑的实现

YFRQSUDO
2018-01-012018-01-013
2018-01-012018-01-024
2018-01-012018-01-035
2018-01-012018-01-044
2018-02-012018-02-012
2018-02-012018-02-024

结果统计:

YFRQSUDO
2018-01-012018-01-013
2018-01-012018-01-027
2018-01-012018-01-0312
2018-01-012018-01-0416
2018-02-012018-02-012
2018-02-012018-02-026

六、Hive中Sort By, Order By, Cluster By, Distributed By分别是什么含义和用途?

七、Hive数据倾斜的原因有哪些?请列举一下具体的处理方法。

八、本月某种产品的销售额相比上个月下降的主要原因是什么如何分析?

九、消费者偏好同手机品牌的关系,如下表:从这些数据种,你可以得出什么结论?

消费者偏好波导摩托罗拉诺基亚三星合计
137243426121
280645366263
398138132133501
410910811696439
528303544
合计3523643703651451

十、公司楼下有一个便利店,35平米,每天有6位工作人员,请估算当天的营业额

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Hadoop和Hive是大数据处理领域中经常使用的工具和框架。 Hadoop是一个开源的分布式计算框架,旨在解决处理大规模数据的问题。它通过将大型数据集分布到多个计算机节点上,并利用集群中的多个计算资源进行并行计算和存储,从而实现高效地处理大数据Hadoop包括Hadoop分布式文件系统(HDFS)和Hadoop资源调度器(YARN),它们共同构成了Hadoop的核心组件。HDFS负责将数据分布式存储到集群中的各个节点上,而YARN则负责管理集群中的资源和任务调度。Hadoop还提供了一个分布式计算编程模型MapReduce,用于编写并行计算任务。通过使用Hadoop,可以实现大规模数据的存储、处理和分析,从而提供有关数据的洞察力。 Hive是建立在Hadoop之上的数据仓库基础架构,它提供了一个类似于SQL的查询语言——HiveQL,用于将结构化数据映射到Hadoop分布式文件系统上,并提供高级查询和分析能力。Hive将用户提交的HiveQL查询转换为MapReduce任务,并在Hadoop集群上执行。Hive的设计目标是提供高效灵活的数据查询和分析解决方案,同时隐藏底层的复杂性。它支持用户自定义函数(UDF)、数据压缩和数据分区等功能,以及与其他工具(如Pig、Sqoop和Flume)的集成。通过使用Hive,用户可以方便地使用SQL语言进行数据的查询、过滤、转换和分析,而无需深入了解Hadoop的底层技术。 总结来说,Hadoop和Hive是大数据处理领域中非常重要的工具和框架。Hadoop提供了一个分布式计算和存储的平台,可用于处理大规模数据,而Hive则建立在Hadoop之上,提供了更高级的查询和分析能力,使用户可以通过类似SQL的语言对大数据进行查询和分析。这些工具的使用可以帮助用户更高效、方便地处理和分析大规模数据,并挖掘出有价值的信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值