sparksql
文章平均质量分 68
Data_IT_Farmer
BJUT 2014级 计算机学院小硕一枚,现为某上市金融公司--高级大数据开发工程师一枚。自20170701开始记录自己的技术工作生涯!广结天下技术之友,笑对未来技术之难题!
展开
-
hive 和 spark-sql 如何写SQL求出中位数平均数和众数(count 之外的方法)
1、概念介绍 平均数、中位数、众数都是度量一组数据集中趋势的统计量。所谓集中趋势是指一组数据向某一中心值靠拢的倾向,测度集中趋势就是寻找数据一般水平的代表值或中心值。而这三个特征数又各有特点,能够从不同的角度提供信息。平均数特点:计算用到所有的数据,它能够充分利用数据提供的信息,它具有优秀的数学性质,因此在实际应用中较为广泛。但它受极端值的影响较大。应用场合:没有极端值的情况下数据集中趋势的刻画。如:小明五次测试的成绩为87、88、89、93、94你认为小明这五次测试成绩怎样?...转载 2021-11-24 10:27:15 · 7664 阅读 · 1 评论 -
Spark DataFrame 的窗口函数使用的两种形式介绍
1、概述上文介绍了sparkdataframe常用操作算子。除此外,spark还有一类操作比较特别——窗口函数。窗口函数常多用于sql,spark sql也集成了,同样,spark dataframe也有这种函数,spark sql的窗口函数与spark dataframe的写法不太一样。1.1、spark sql 写法select pcode,event_date,sum(duration) over (partition by pcode order by event_date as.转载 2021-07-27 13:34:24 · 3628 阅读 · 0 评论 -
获取本季度上季度的时间_hive时间函数应用小例
1. 获取当前时间:yyyy-mm-ddSELECT CURRENT_DATE;current_date()2021-06-17Time taken: 0.077 seconds, Fetched 1 row(s)2. 获取当月第一天时间:yyyy-mm-ddselect date_sub(current_date,dayofmonth(current_date)-1);date_sub(current_date(), (dayofmonth(current_date()) - 1转载 2021-06-17 21:25:14 · 3354 阅读 · 0 评论 -
HiveSQL/SparkSQL的 round() 、floor()和 ceil()的 用法
HiveSQL/SparkSQL的 round() 、floor()和 ceil()的 用法1、概述round四舍五入floor 取左值ceil 取右值2、在SparkSQL中的示例spark版本:spark-2.3.4Hive client (version 1.2.2)spark-sql> select round(1.2356);1Time taken: 0.788 seconds, Fetched 1 row(s)spark-sql> ...转载 2021-04-30 20:11:29 · 7460 阅读 · 1 评论 -
SparkSQL—最大连续登录天数、当前连续登录天数、最大连续未登录天数问题
Hive SQL——最大连续登录天数、当前连续登录天数、最大连续未登录天数问题1、数据准备表字段:用户、新增日期、活跃日期 原数据表:user_active表1.1、测试数据:比较date和timestamp类型CREATE TABLE test_user_active( name string, install_date timestamp, active_date timestamp);insert overwrite table test_user_act.转载 2021-04-26 13:23:31 · 2188 阅读 · 0 评论 -
Hive SQL经典使用场景示例
HQL每天购课总额前三的用户原始数据 with tbl_order as ( select '2019-01-01' as dt, 1 as uid, '数学' as course_id, 50 as price union all select '2019-01-01' as dt, 2 as uid, '数学' as course_id, 50 as price union all select '2...原创 2021-04-16 20:47:33 · 659 阅读 · 0 评论 -
Hive分析窗口函数 GROUPING SETS、GROUPING__ID、CUBE、ROLLUP使用说明和示例
Hive分析窗口函数 GROUPING SETS、GROUPING__ID、CUBE、ROLLUP使用说明和示例0、概述GROUPING SETS:根据不同的维度组合进行聚合,等价于将不同维度的GROUP BY结果集进行UNION ALL GROUPING__ID:表示结果属于哪一个分组集合,属于虚字段 CUBE:根据GROUP BY的维度的所有组合进行聚合。 ROLLUP:为CUBE的子集,以最左侧的维度为主,从该维度进行层级聚合。这几个分析函数通常用于OLAP中,不能累加,而且需要根据不原创 2021-04-16 15:42:48 · 4685 阅读 · 1 评论 -
spark-sql创建时间维度表
1、概述:在数据分析,数据仓库和数据开发的过程中,经常会用到各种时间粒度,尤其是会按照各种时间粒度(进行上钻或者下钻)出统一逻辑报表数据,此时将面临分析时间粒度爆炸的问题(使用grouping set解决,见另一篇文章),所以有必要产出一个时间维度表。2、时间维度表建表语句CREATE TABLE if not exists dim_date_df( `dt` string comment '日期,格式为20200325,同分区格式', `new_dt` date comment '日期,原创 2021-04-16 15:00:53 · 1447 阅读 · 0 评论 -
Hive的分析窗口函数SUM,AVG,MIN,MAX的例子
Hive中提供了越来越多的分析函数,用于完成负责的统计分析。抽时间将所有的分析窗口函数理一遍,将陆续发布。今天先看几个基础的,SUM、AVG、MIN、MAX。用于实现分组内所有和连续累积的统计。Hive版本为 apache-hive-0.13.1数据准备CREATE EXTERNAL TABLE lxw1234 (cookieid string,createtime string, --daypv INT) ROW FORMAT DELIMITEDFIELDS TE转载 2020-09-01 09:15:49 · 4680 阅读 · 0 评论 -
hive sql和spark sql查询同一条SQL语句,结果不一样(甚至条数差别很大)的原因
hive sql和spark sql查询同一条SQL语句,结果不一样(甚至条数差别很大)的原因哪位老师帮忙看一下同一句sql,hive sql 查出来 160w ,但是spark sql (spark-shell或者spark.sql()) 查出来只有150w0、结论:可以看下SQL 中 join on 两边的字段类型是否一致我之前遇到这样的问题,发现on 条件 等号两边的字段类型不一致造成的当 on 条件两边字段类型,一边是string,一边是bigint; 在hive中 会 把 st..原创 2021-03-11 22:01:15 · 3958 阅读 · 0 评论 -
scala spark 创建DataFrame的五种方式
scala spark 创建DataFrame的多种方式1. 通过RDD[Row]和StructType创建import org.apache.log4j.{Level, Logger}import org.apache.spark.rdd.RDDimport org.apache.spark.sql.types.{IntegerType, StringType, StructField, StructType}import org.apache.spark.sql.{DataFrame,转载 2021-01-28 18:09:23 · 6743 阅读 · 0 评论 -
Spark笔记之使用UDF(User Define Function)
Spark笔记之使用UDF(User Define Function)目录1、UDF介绍2、使用UDF2.1 在SQL语句中使用UDF2.2 直接对列应用UDF(脱离sql)3、完整代码1、UDF介绍UDF(User Define Function),即用户自定义函数,Spark的官方文档中没有对UDF做过多介绍,猜想可能是认为比较简单吧。几乎所有sql数据库的实现都为用户提供了扩展接口来增强sql语句的处理能力,这些扩展称之为UDXXX,即用户定义(User Defin转载 2021-01-25 17:05:06 · 5482 阅读 · 0 评论 -
Spark DataFrame 使用UDF实现UDAF的一种方法
Spark DataFrame 使用UDF实现UDAF的一种方法1、Background当我们使用Spark Dataframe的时候常常需要进行group by操作,然后针对这一个group算出一个结果来。即所谓的聚合操作。然而 Spark提供的aggregation函数太少,常常不能满足我们的需要,怎么办呢?Spark 贴心的提供了UDAF(User-defined aggregate function),听起来不错。但是,这个函数实现起来太复杂,反正我是看的晕晕乎乎,难受的很。反倒是转载 2021-01-25 16:47:20 · 1060 阅读 · 1 评论 -
spark计算两个DataFrame的差集、交集、合集
spark计算两个DataFrame的差集、交集、合集闲话不说,直接上代码和结果import org.apache.log4j.{Level, Logger}import org.apache.spark.{SparkConf, SparkContext}import org.apache.spark.sql.{SQLContext, SparkSession}/** * @class DataFrameFun * @author yyz * @date 2021/01/24 20:原创 2021-01-24 21:17:35 · 6627 阅读 · 0 评论 -
Spark模拟实现统计出每个域名下面访问次数最多的前三个URL
Spark模拟实现统计出每个域名下面访问次数最多的前三个URL一、需求:现在假设有一个IT教育网站,有Java,PHP,net等多个栏目,下面是模拟实现的网站日志第一个字段是访问日期,第二个字段是访问的URL,其中每个栏目有一个独立域名,如下:java.aaaaaaa.cnnet.aaaaaaa.cnphp.aaaaaaa.cn统计出每个域名下面访问次数最多的前三个URL...原创 2020-01-02 16:47:21 · 1036 阅读 · 0 评论