目录

前言

题目:

一、读题分析

二、处理过程

1. 基本准备

2. 创建fact_environment_data表

2.1 建表前的准备

2.2 在Hive中建表

2.3 插入数据

2.4 收工

三、重难点分析

总结


前言

本题来源于全国职业技能大赛之大数据技术赛项工业赛题-离线数据处理-数据清洗

题目:


提示:以下是本篇文章正文内容,下面案例可供参考(使用Hive SQL编写)

一、读题分析

涉及组件:Hive

涉及知识点:

1.HiveSQL语法的操作

2.Hive数据库的分组,去重操作

3.Hive数据库分区的概念(重难点)


二、处理过程

1. 基本准备

-- 创建dwd库
CREATE DATABASE IF NOT EXISTS dwd;
-- 使用dwd库
USE dwd;

2. 创建fact_environment_data表

2.1 建表前的准备

在建表之前需要到MySQL数据库中对应了该表的表中,使用

desc + 数据库表名

语法复制MySQL中对应所需表的表结构结构 ,如下图:

2.2 在Hive中建表

-- 创建fact_environment_data表
CREATE TABLE IF NOT EXISTS fact_environment_data
(EnvoId          string,BaseID          string,CO2             string,PM25            string,PM10            string,Temperature     string,Humidity        string,TVOC            string,CH2O            string,Smoke           string,InPutTime       string,dwd_insert_user STRING,dwd_insert_time timestamp,dwd_modify_user STRING,dwd_modify_time TIMESTAMP
) partitioned by (etldate STRING)ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

partitioned by (分区名 分区类型),分区函数

2.3 插入数据

-- 插入数据
insert overwrite table dwd.fact_environment_dataPARTITION (etldate = '20230328')
SELECT EnvoId,BaseID,CO2,PM25,PM10,Temperature,Humidity,TVOC,CH2O,Smoke,from_unixtime(unix_timestamp(InPutTime, 'yyyy-MM-dd HH:mm:ss.SSS'), 'yyyy-MM-dd HH:mm:ss') as InPutTime,'user1'                                                                                    as dwd_insert_user,cast(from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss') as TIMESTAMP)                  as dwd_insert_time,'user1'                                                                                    as dwd_modify_user,cast(from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss') as TIMESTAMP)                  as dwd_modify_time
FROM ods.environmentdata;
-- 如果你在 Hive 中已经有了 ods 数据库,那么在插入语句的 from 后面就需要加上 ods.
-- unix_timestamp()是获取现在的时间戳
-- from_unixtime(unix_timestamp(), 'yyyy-MM-dd HH:mm:ss')是将时间戳转换成相应的日期格式

2.4 收工

-- 查询前5条数据,按照envoid降序排序
SELECT *
FROM dwd.fact_environment_data
ORDER BY EnvoId DESC
LIMIT 5;

三、重难点分析

Hive中函数的使用,数据类型的修改


总结

本文仅仅介绍了对Hive数据库操作的过程,题目简单,只要掌握好基本的SQL语法和日期函数的使用,本题难度不大。

如转载请标明出处

大数据之任务清洗编写HiveSQL代码对数据进行抽取或转换相关推荐

  1. 数据仓库之【用户行为数仓】06:【dwd层】明细数据层:清洗ods层之后的数据

    一.dwd层分析 下面我们来创建dwd层: 针对ods层表中的数据进行清洗,参考数据清洗规则,按照实际情况对数据进行清洗. 注意:如果清洗规则使用SQL可以实现,那么就使用SQL实现数据清洗,如果清洗 ...

  2. python收集数据程序_用一行Python代码进行数据收集探索!Python真牛逼!

    简易的Pandas之路 任何使用P ython数据的人都会熟悉Pandas包.P andas是大多数行和列格式数据的go-to包. 如果你没有Pandas,请确保在终端中使用pip install安装 ...

  3. 如何使用 WEB 技术编写前端代码,实现大屏展示和地图显示功能

    使用 WEB 技术编写前端代码实现大屏展示和地图显示功能可以采用以下步骤: 使用 HTML.CSS.JavaScript 等前端技术构建页面布局和样式. 使用 JavaScript 库或框架,如 jQ ...

  4. 基于hadoop和echarts的教育大数据可视化系统 毕设完整的代码+数据集

    一.摘 要 在线教育平台现在是教育体系的重要组成部分,在当前大数据时代的背景下,促进教育机构建立统一平台.统一资源管理的数字化教学系统.如何评估系统平台的健康程度.学生的学习体验和在线课程的质量对于课 ...

  5. 一起重新开始学大数据-java篇-DAY01-第一个java代码helloworld

    一起重新开始学大数据-java篇 -DAY01-第一个java代码helloworld 计算机: 按照指定程序,自动高速处理海量数据 计算机组成 硬件和软件组成 硬件: cpu:计算 内存:提供计算资 ...

  6. junit编写测试代码_编写数据访问代码测试–绿色建筑不够好

    junit编写测试代码 开始为数据访问代码编写集成测试之前,我们要做的第一件事是决定如何配置测试用例. 我们有两种选择:正确的一种和错误的一种. 不幸的是,许多开发人员选择错误. 我们如何避免犯同样的 ...

  7. Excel催化剂开源第42波-与金融大数据TuShare对接实现零门槛零代码获取数据

    在金融大数据功能中,使用了TuShare的数据接口,其所有接口都采用WebAPI的方式提供,本来还在纠结着应该搬那些数据接口给用户使用,后来发现,所有数据接口都有其通用性,结合Excel灵活友好的输入 ...

  8. 对编写的代码进行单元测试_编写数据访问代码测试–单元测试是浪费

    对编写的代码进行单元测试 几年前,我是为我的数据访问代码编写单元测试的那些开发人员之一. 我正在孤立地测试所有内容,我对自己感到非常满意. 老实说,我认为自己做得很好. 哦,男孩,我错了! 这篇博客文 ...

  9. junit编写测试代码_编写数据访问代码测试-不测试框架

    junit编写测试代码 当我们向数据访问代码编写测试时,是否应该测试其公共API的每种方法? 一开始听起来很自然. 毕竟,如果我们不测试所有内容,那么如何知道我们的代码可以按预期工作? 这个问题为我们 ...

最新文章

  1. struts 普通的action
  2. python测试之道第5章模拟网络请求
  3. c#学习笔记之第一个程序“Hello world”
  4. 计算机二级C语言辅导j机构,全国计算机二级C语言公基础知识辅导.pptx
  5. 防止 重复重建相同的表
  6. 腾讯翻译君 VS 谷歌翻译
  7. loadrunner11 linux服务器,loadrunner11监控linux服务器性能
  8. 华为USG6000单臂路由
  9. webSSH如何安装?如何使用?解决Web端远程连接终端~~运维篇
  10. 实现sqrt()平方根函数
  11. Blender带凹凸质感的渐变玻璃材质
  12. ppt模板如何制作个性海报?
  13. ai人工智能_药物发现中的人工智能
  14. NUC977 烧录裸机程序到DDR
  15. BiomaRt 包进行基因ID转换
  16. 2023年网络安全比赛--网页渗透测试中职组(超详细)
  17. 将GrilView中的数据转换成DataTable
  18. 根据年份和月份判断该月的天数,例如,1900年是平年,则2月份有28天,2000年是闰年,则2月份有29天。 闰年的条件:year除以400能整除,或者year除以4能整除,但是不能是100的倍数
  19. 木材防霉剂预防木材发霉方法
  20. linux 伪静态 cms,YzmCMS伪静态配置

热门文章

  1. C#textbox如何进行滚动条显示
  2. 全志A23芯片停产,全志A33芯片方案取代
  3. 统计基础:1.1_正态分布及其检验
  4. soar mysql_小米开源的数据库SQL性能分析工具SOAR,windows版安装使用
  5. windows下载安装小米的sql分析工具soar
  6. python functools import wraps_Python - 关于functools模块的wraps装饰器用途
  7. 解读谷歌Pathways架构(一):Single-controller与Multi-controller
  8. BIMBase-Python参数化组件常见问题——脚本运行常见报错
  9. c语言——用二维数组名对二级指针赋值
  10. 搜索结果【高亮显示】