大数据之任务清洗编写HiveSQL代码对数据进行抽取或转换
目录
前言
题目:
一、读题分析
二、处理过程
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代码对数据进行抽取或转换相关推荐
- 数据仓库之【用户行为数仓】06:【dwd层】明细数据层:清洗ods层之后的数据
一.dwd层分析 下面我们来创建dwd层: 针对ods层表中的数据进行清洗,参考数据清洗规则,按照实际情况对数据进行清洗. 注意:如果清洗规则使用SQL可以实现,那么就使用SQL实现数据清洗,如果清洗 ...
- python收集数据程序_用一行Python代码进行数据收集探索!Python真牛逼!
简易的Pandas之路 任何使用P ython数据的人都会熟悉Pandas包.P andas是大多数行和列格式数据的go-to包. 如果你没有Pandas,请确保在终端中使用pip install安装 ...
- 如何使用 WEB 技术编写前端代码,实现大屏展示和地图显示功能
使用 WEB 技术编写前端代码实现大屏展示和地图显示功能可以采用以下步骤: 使用 HTML.CSS.JavaScript 等前端技术构建页面布局和样式. 使用 JavaScript 库或框架,如 jQ ...
- 基于hadoop和echarts的教育大数据可视化系统 毕设完整的代码+数据集
一.摘 要 在线教育平台现在是教育体系的重要组成部分,在当前大数据时代的背景下,促进教育机构建立统一平台.统一资源管理的数字化教学系统.如何评估系统平台的健康程度.学生的学习体验和在线课程的质量对于课 ...
- 一起重新开始学大数据-java篇-DAY01-第一个java代码helloworld
一起重新开始学大数据-java篇 -DAY01-第一个java代码helloworld 计算机: 按照指定程序,自动高速处理海量数据 计算机组成 硬件和软件组成 硬件: cpu:计算 内存:提供计算资 ...
- junit编写测试代码_编写数据访问代码测试–绿色建筑不够好
junit编写测试代码 开始为数据访问代码编写集成测试之前,我们要做的第一件事是决定如何配置测试用例. 我们有两种选择:正确的一种和错误的一种. 不幸的是,许多开发人员选择错误. 我们如何避免犯同样的 ...
- Excel催化剂开源第42波-与金融大数据TuShare对接实现零门槛零代码获取数据
在金融大数据功能中,使用了TuShare的数据接口,其所有接口都采用WebAPI的方式提供,本来还在纠结着应该搬那些数据接口给用户使用,后来发现,所有数据接口都有其通用性,结合Excel灵活友好的输入 ...
- 对编写的代码进行单元测试_编写数据访问代码测试–单元测试是浪费
对编写的代码进行单元测试 几年前,我是为我的数据访问代码编写单元测试的那些开发人员之一. 我正在孤立地测试所有内容,我对自己感到非常满意. 老实说,我认为自己做得很好. 哦,男孩,我错了! 这篇博客文 ...
- junit编写测试代码_编写数据访问代码测试-不测试框架
junit编写测试代码 当我们向数据访问代码编写测试时,是否应该测试其公共API的每种方法? 一开始听起来很自然. 毕竟,如果我们不测试所有内容,那么如何知道我们的代码可以按预期工作? 这个问题为我们 ...
最新文章
- struts 普通的action
- python测试之道第5章模拟网络请求
- c#学习笔记之第一个程序“Hello world”
- 计算机二级C语言辅导j机构,全国计算机二级C语言公基础知识辅导.pptx
- 防止 重复重建相同的表
- 腾讯翻译君 VS 谷歌翻译
- loadrunner11 linux服务器,loadrunner11监控linux服务器性能
- 华为USG6000单臂路由
- webSSH如何安装?如何使用?解决Web端远程连接终端~~运维篇
- 实现sqrt()平方根函数
- Blender带凹凸质感的渐变玻璃材质
- ppt模板如何制作个性海报?
- ai人工智能_药物发现中的人工智能
- NUC977 烧录裸机程序到DDR
- BiomaRt 包进行基因ID转换
- 2023年网络安全比赛--网页渗透测试中职组(超详细)
- 将GrilView中的数据转换成DataTable
- 根据年份和月份判断该月的天数,例如,1900年是平年,则2月份有28天,2000年是闰年,则2月份有29天。 闰年的条件:year除以400能整除,或者year除以4能整除,但是不能是100的倍数
- 木材防霉剂预防木材发霉方法
- linux 伪静态 cms,YzmCMS伪静态配置
热门文章
- C#textbox如何进行滚动条显示
- 全志A23芯片停产,全志A33芯片方案取代
- 统计基础:1.1_正态分布及其检验
- soar mysql_小米开源的数据库SQL性能分析工具SOAR,windows版安装使用
- windows下载安装小米的sql分析工具soar
- python functools import wraps_Python - 关于functools模块的wraps装饰器用途
- 解读谷歌Pathways架构(一):Single-controller与Multi-controller
- BIMBase-Python参数化组件常见问题——脚本运行常见报错
- c语言——用二维数组名对二级指针赋值
- 搜索结果【高亮显示】