在spark中, 对于一个数据集,map 是对每行进行操作,得到一个结果,一对一映射;reduce 则是对多行进行操作,得到一个结果,多对一汇总;而 window 函数则是对多行进行操作,得到多个结果,多行对应多行。 此篇博客会以实例介绍 window 函数的基本概念和用法。 windows窗口函数包含3种: ranking 排名类 analytic 分析类 aggregate 聚合类 Function Type SQL DataFrame API 排名类…
在spark中, 对于一个数据集,map 是对每行进行操作,得到一个结果,一对一映射;reduce 则是对多行进行操作,得到一个结果,多对一汇总;而 window 函数则是对多行进行操作,得到多个结果,多行对应多行。 此篇博客会以实例介绍 window 函数的基本概念和用法。 windows窗口函数包含3种: ranking 排名类 analytic 分析类 aggregate 聚合类 Function Type SQL DataFrame API 排名类…
zeppelin-context是一个用于通用实用程序函数和用户特定数据的系统范围容器。它实现了用于数据输入、数据显示等的功能,这些功能通常是必需的,但并非所有解释器都能统一使用。它的每个用户实例可以跨所有用户的笔记本和单元访问,从而支持单元之间的数据交换——甚至在不同的笔记本中。但是zeppelin-context的使用方式和可用的功能取决于相关的解释器是否基于一种编程语言。zeppelin-context如何用于不同目的和不同环境的细节描述如下。 1、在scala与python两种语言之间的对象交换方法 2、 …
在大部分的项目中,使用spark streaming读取kafka的架构中,kafka的数据都是json格式发送的,比较复杂一些的是json中嵌套数组json格式,下面总结了两种解析方法 json数据格式 第一种方法 使用json4s的默认转化器解析 实现代码如下 第二种 使用spark.read.json解析数据 核心代码 依赖库配置 build.sbt
在工作或者学习中难免会遇到各种复杂需求的项目,有的是跟时间相关,有的跟距离相关等。 场景1 交通轨迹问题 数据有terminal_id,city,up_time三列。目标是统计car终端每次经过一个city的时间段;不是经过每个city的总时间。每个时间段以当地的up_time为准。 数据实例 需要实现获取的结果为 实现代码 ###pyspark实现代码 场景2 计算网站用访问用户的留存时间 例如有一个网站的用户登录数据如下 | user_name|login_date| +----------+---------…
在spark处理数据的项目开发过程中,经常会遇到清洗、转换数据的需求,转换数据就要在原来dataframe中增加新的字段,下面总结了3个常用增加字段的方法 首先创建一个dataframe数据实例 生成数据 方法1 使用withColumn()增加列 withColumn()用于在DataFrame上添加新列或更新现有列,在这里仅说明如何使用现有列添加新列。 withColumn()函数带有两个参数,第一个参数是新列的名称,第二个参数是Column类型中的列的值。 我们增加了一个新的字段 newsalary,字段值为…
最近在使用spark开发的过程中,遇到了一个空指针错误,spark处理数据的过程主要是 spark读取数据库数据做清洗转换,然后需要把数据和数据库中另一个表做匹配查询,查询到结果后存到hdfs. 因为数据量比较大,所以读出数据后,使用了foreachpartition在每个分区做处理优化,打算在分区中匹配数据后转换为dataframe,直接保存到hive,结果调试的过程中遇到了空指针错误,主要代码如下 结果运行调试的时候报告错误 google搜索了一下问题,找到答案 空指针异常的原因是因为dataframe,rdd…