高端网站建站 北京/百度公司招聘岗位
文章目录
- 熟悉Python
- 懂R语言
- 掌握SQL
- 大数据基础
- 数据库常用类型
- 多表查询
- 更多
- 聚合函数
- distinct
- case when
- 窗口函数
- 动态更新
- 一行变多行
- 调优
内容整理自《拿下offer 数据分析师求职面试指南》—徐粼著 第四章编程技能考查
其他内容:
【数据分析师求职面试指南】必备基础知识整理
【数据分析师求职面试指南】必备编程技能整理之Hive SQL必备用法
【数据分析师求职面试指南】实战技能部分
熟悉Python
懂R语言
掌握SQL
大数据基础
Hive时Hadoop的一个数据仓库工具,将结构化的数据文件映射为一个数据库表,并提供类SQL查询功能:Hive SQL
Hadoop主要解决两大问题:大数据存储和大数据分析。解决分别依赖HDFS和Mapreduce。
HDFS:可扩展的、容错的、高性能的分布式文件系统,异步复制,一次写入、多次读取,主要负责存储。
MapReduce使分布式计算框架,包含Map映射和Reduce归约过程,负责在HDFS上进行计算。
Hadoop存储计算海量数据但是需要前端实时展示数据变化情况时,无法保证实时性。MySQL是将数据存储在本地服务器的关系数据库,可满足实时展示,但可能因计算量大使任务杀死。
目前通用方法在Hadoop中通过Hive SQL 对原始数据集进行处理,尽量在Hive中完成大数据量的计算,之后将处理好的数据通过出仓的方式导入MySQL。
下面是以Hive SQL为例:
数据库常用类型
不涉及子查询的单表查询SQL语句:select,from,where,group by,having,order by
select执行顺序:from->where->group by ->select->having->order by
group by存在时,select后非聚合字段都会被视为分组字段,要保证一一对应!group by在sellect之前,所以不能直接使用别名。
只有存在group by才使用having,主要针对聚合后字段及逆行筛选,可以使用字段别名。
desc降序,asc升序
多表查询
join:以字段(列)为单位连接 【使用更广泛】。
1. inner join(内连接):只保留两个表同时存在的记录
2. left join(左连接):保留左表所有记录,无匹配用NULL
3. right join:保留右表所有记录
4. full join:左右表记录都保留
union:以记录(行)为单位连接,需要保证连接的两表字段数量相同,且按顺序一一对应。
mysql中有union.union all;Hive 只有union all(不去重)
Hive大多是分区表,加快查询速度,节省计算资源。没有索引,每次查询要全量扫描,增加分区可以减少每次扫描的数量。
分区表:增量表和全量表。
更多
聚合函数
出现select后,对记录按照分组字段进行汇总
聚合函数 | 含义 |
---|---|
sum(col) | 计算分组后组内所有记录的和 |
avg(col) | …均值 |
count(col) | 记录的数量 |
stddev(col) | 标准差 |
variance(col) | 方差 |
max()min() | 最大最小值 |
percentile(col,p) | p分位数,p:0~1 |
distinct
去重,两个场景:
一使select后使用,对整体记录去重(所有字段值相同)select distinct id,name...
;
二是聚合函数时,实现分组后去重,再进行聚合计算。count(distinct subject)
:统计参加过考试的学科数
case when
- 使用在分组语句和选择语句中,group by后(不可使用字段别名),提供新的分组字段。
select case when city in ('青岛','济南')then '山东'else '其他'end as provincecount(1) as total
from table
where pt>='2019-01-01'
group by case when city in ('青岛','济南')then '山东'else '其他'end
- select后,基于现有字段生成新字段
- 聚合函数中:
count(distinct case when score>=60 then subject end)as total_suc_subject
:统计考试通过的学科数
聚合函数+distinct+case when 基本完成SQL分组计算!
窗口函数
类似聚合函数也会对记录分组后进行聚合计算,但不会为每组只返回一个值,而是多个。准确说,为分组中每条记录都返回特定值。
只能出现select后,并且不会再使用group by
基本结构函数名() over (partition by col1,col2 order by col3 desc/asc,col4 asc/desc)
partition by表示对所有记录按照col1,col2分组,有相同的记录按照col3,col4降序或升序排列。
常用(一定要掌握,可以减少表与表的连接)的:
动态更新
用户留存率:n天前使用App的用户今天依然使用的占比。指标在原始数据产生n天后获得,需要对n天前分区数据进行更新,涉及动态分区概念。
Hive不支持insert、update、delete,无法直接修改记录,通过对分区全量更新实现数据修改。
首先建分区表 ;
一行变多行
group by 多行变一行
调优
比如当需要对大表小表进行join操作时,可以使用MAPJOIN将小表加载到内存中,通常小表大小营销与25MB。
若上述操作后,计算速度依旧不快,考虑数据倾斜问题。
执行Hive SQL语句过程中经历Map,Reduce两个步骤,
相关文章:

【数据分析师求职面试指南】必备编程技能整理之Hive SQL必备用法
文章目录熟悉Python懂R语言掌握SQL大数据基础数据库常用类型多表查询更多聚合函数distinctcase when窗口函数动态更新一行变多行调优内容整理自《拿下offer 数据分析师求职面试指南》—徐粼著 第四章编程技能考查其他内容:【数据分析师求职面试指南】必备基础知识整…...

Maven - Linux 服务器 Maven 环境安装与测试
目录 一.引言 二.安装流程 1.获取安装包 2.解压并安装 3.配置环境 4.mvn 验证 三.测试踩坑 1.Permission denied 2.Plugin or dependencies Error 一.引言 通道机上的 java 项目需要 mvn package 提示没有 mvn 命令,下面记录下安装 maven 的全过程。 二.安…...

5G模块可以注册到4G,不能注册到5G;SIM卡接到5G手机是可以注册到5G网络的?
5G网络覆盖范围较小或者信号质量不佳。在这种情况下,您可以尝试移动到不同的位置,以获得更好的信号质量和覆盖范围。 目前,5G网络已经在全球多个国家和地区推出,并且在不断扩大覆盖范围。以下是一些已经拥有5G覆盖的主要地区&…...

宝塔webhook自动化打包vue项目时,npm不生效问题
文章目录📋前言🎯查看webhook配置的代码🎯测试代码,检查输出内容🎯解决方法📋前言 这篇文章主要是记录和解决在宝塔面板中,webhook自动化打包vue项目时,npm不生效问题。说来奇怪&am…...

嵌入式 Linux进程间通信之信号量
目录 一、信号量 1、信号量概述 2、什么是信号量 3、信号量的分类 4、进程获取共享资源要执行的操作 5、System V IPC 机制:信号量 5.1 semget函数 5.2 semop函数 5.3 semctl函数 一、信号量 1、信号量概述 信号量集:由若干个信号组成的集合&a…...

谷粒学院开发(一):基础准备
商业模式 常见商业模式 B2C模式: 两个角色: 管理员:增加,修改,删除普通用户:查询 商家到用户,自己制作大量自有版权的视频,放在自有平台上,让用户付费。 这是这个项目使…...

Photoshop如何安装ZXP扩展插件?
Photoshop如何安装ZXP扩展插件呢?有一些小伙伴不会安装,今天介绍两种安装ZXP扩展的方法,希望对能帮助到大家。方法一:手动安装方式1)把下载好的.zxp扩展名改为.zip,然后解压。Windows系统:C:\Us…...

c++面试技巧-基础篇4
1.面试官:在使用继承时需要注意哪些问题? 应聘者:在使用继承时需要注意以下内容。 (1)父类的构造函数和析构函数是不会被继承的,需要重写派生类的构造函数和析构函数。 (2)派生类…...

openEuler用户软件仓(EUR)介绍
什么是 EUR EUR(openEuler User Repo)是openEuler社区针对开发者推出的个人软件包托管平台,目的在于为开发者提供一个易用的软件包分发平台。 链接:https://eur.openeuler.openatom.cn/ 为什么我们需要 EUR 在操作系统的世界,软件包是一等…...

MySQL的图形化界面开发工具DataGrip的下载安装
在日常的开发中,会借助于MySQL的图形化界面,来简化开发,提高开发效率。目前mysql主流的图形化界面工具,有Navicat、SQLyog、DataGrip等,最后一种DataGrip,这种图形化界面工具,功能更加强大&…...

Azure Portal 访问安全性增强
Azure Portal 访问安全性增强客户需求如何设置账号(包括Admin)定期修改密码,例如强制每90天必须修改密码如何设定账号密码的复杂性要求如何设定限制访问Azure Portal的源IP Address客户需求 为了增强访问Azure Portal的安全性,希…...

mysql安全值守数据库常用语句
目录1.用户权限设置mysql中用户如何定义2.元数据查询3.union查询详解4.分组查询展示5.字符串函数6.mysql数据库导入导出1.用户权限设置 mysql中用户如何定义 用户名主机域有以下几种表示方式: 1. 10.0.0.51 2. 10.0.0.% 3. % 4. 10.0.0.0/255.255.255.0 5. Db01 6…...

CSS快速入门
文章目录一、CSS是什么?语法规范引入方式二、CSS选择器标签选择器类选择器ID选择器通配符选择器后代选择器子选择器并集选择器伪类选择器三、常见元素属性字体属性文本属性背景属性圆角矩形元素的显示默认块级与行级元素盒子模式去除浏览器默认样式弹性布局一、CSS是…...

emq-docker安装配置
目录 1 docker配置 2 mysql 认证 2.1 添加认证表 2.2 认证文件配置 3 系统topic docker安装;mysql客户端认证;配置系统topic 获取客户端上下线消息。文件提到配置文件见附件。 1 docker配置 docker镜像地址:emqx/emqx emqx_auth_mysql.…...

Bean三种实例化方式的底层原理
Bean实例化的三种方式 1,使用类构造器实例化(无参构造函数)2,使用静态工厂方法实例化(简单工厂模式)3,使用实例工厂方法实例化(工厂方法模式) 基于以上的三种方式&…...

java25种设计模式之适配器模式
1、定义 适配器模式在java中是一中结构型设计模式。 在实际的java来发中,有时候我们会遇到一些不能直接调用,或者不是客户需要的接口,但是却需要使用时,我们就可以使用适配器设计模式。 适配器设计模式就是将一个原本不兼容的接口…...

【微服务】—— 初识微服务
文章目录1. 什么是微服务1.1 微服务的特性自主专用性1.2 微服务的优势敏捷性灵活扩展轻松部署技术自由可重复使用的代码弹性2. 微服务技术栈3. 微服务架构演进3.1 单体架构3.2 分布式架构服务治理3.3 微服务微服务结构微服务技术对比企业需求1. 什么是微服务 微服务是一种开发软…...

Unity使用webSocket与服务器通信(二)——C#服务器端使用Fleck时的简单服用方法
C#服务端用到Fleck包,它包含哪些可用的回调函数,有哪些常用的api方法? 演示:服务端收到Unity用户发来的信息 1、Fleck服务器提供哪些回调函数 Fleck提供的回调函数有下面几种: //用户连入服务器时... Action OnOp…...

【Linux】线程概念 | 线程控制
🌠 作者:阿亮joy. 🎆专栏:《学会Linux》 🎇 座右铭:每个优秀的人都有一段沉默的时光,那段时光是付出了很多努力却得不到结果的日子,我们把它叫做扎根 目录👉知识补充&…...

pocsuite3安装及使用
pocsuite3安装及使用简介项目地址环境配置及安装环境要求安装(详情可以参考[https://pocsuite.org/](https://pocsuite.org/))使用方法运行模块加载目标参数:Console模式查看有哪些模块使用Telnet 弱密码模块这里以flask模板注入漏洞为例pocs…...

docker从安装到部署一个项目
一.centos安装docker 参考博客:https://blog.csdn.net/m0_47010003/article/details/127775185 1.设置一下下载Docker的镜像源 设置下载的镜像源为国内的阿里云,如果不设置,会默认去Docker的官方下载 yum-config-manager --add-repo http…...

QT编程从入门到精通之十二:“第四章:Qt程序创建基础”之“4.1 创建基础程序”
目录 第四章:Qt程序创建基础 4.1 创建基础程序 4.1.1 新建一个项目...

黑客入门教程【非常详细】从零基础入门到精通,看这一篇就够了!
首先要明白啊,我们现在说的黑客不是那种窃取别人信息、攻击别人系统的黑客,说的是调试和分析计算机安全系统的网络安全工程师。 黑客技术的核心就是渗透攻防技术,是为了证明网络防御按照预期计划正常运行而提供的一种机制。就是通过模拟恶意…...

手机怎么远程控制腾讯云云服务器?
手机怎么远程控制腾讯云云服务器?腾讯云提供的连接:Windows系统。可以用远程桌面连接,你本地电脑点击,开始-运行-输入mstsc,弹出的框里,填IP和账号密码信息。 管理服务器上还会运行一个数据采集程序&#…...

dorcker与vlu靶场搭建
dorcker与vlu靶场搭建 dorcker安装 以kali linux 为例 安装必要的一些系统工具 apt update apt -y install apt-transport-https ca-certificates curl software-properties-common 添加Docker PGP key curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg …...

Unity性能优化 - Overdraw篇
一、什么是Overdraw Unity Overdraw(超绘)是指在渲染过程中绘制了超过一次相同像素的现象。当多个UI元素重叠时,每个像素都需要被多次绘制。这种绘制超出了渲染所需的最小像素数,因此被称为Overdraw。 二、都有哪些元素会导致Ov…...

Tp5操作mysql json函数
Tp5操作mysql json函数 官方文档介绍正常单个json数据更新没什么问题,但是某些情况可能一次修改多个,但是也不想全部替换 怎么处理?注意 :在源码中 项目\thinkphp\library\think\db\builder.php@parseData方法中 修改控制器调用:官方文档介绍 JSON字段 从V5.1.4+版本开始…...

【蓝桥杯嵌入式】PWM的设置,原理图解析与代码实现(第十一届省赛为例)——STM32
🎊【蓝桥杯嵌入式】专题正在持续更新中,原理图解析✨,各模块分析✨以及历年真题讲解✨都在这儿哦,欢迎大家前往订阅本专题,获取更多详细信息哦🎏🎏🎏 🪔本系列专栏 - 蓝…...

Learning C++ No.13【STL No.3】
引言: 北京时间:2023/3/7/15:33,还有27分钟就要去上课啦!刚刚把最近因为考试原因欠的课给还干净了,已经准备好今天晚上接受航哥的毒打了,毒打就毒打,咱不怕,只要不欠钱,…...

推荐收藏!10大程序员必备生产力工具
作为程序员,提高生产力是我们一直追求的目标。随着技术的发展,越来越多的工具和应用程序被开发出来,帮助程序员们更好地完成工作。在本文中,我将介绍一些程序员必备的生产力工具。 一、IDE(集成开发环境) …...