pyspark之dataframe当前行与上一行值求差
pyspark之dataframe当前行与上一行值求差
from pyspark import SparkContext
from pyspark.sql import SQLContext
from pyspark.sql import functions as F
from pyspark.sql.window import Windowsc = SparkContext(appName="PrevRowDiffApp")
sqlc = SQLContext(sc)rdd = sc.parallelize([(1, 65), (2, 66), (3, 65), (4, 68), (5, 71)])df = sqlc.createDataFrame(rdd, ["id", "value"])my_window = Window.partitionBy().orderBy("id")df = df.withColumn("prev_value", F.lag(df.value).over(my_window))
df = df.withColumn("diff", F.when(F.isnull(df.value - df.prev_value), 0).otherwise(df.value - df.prev_value))df.show()
+---+-----+----------+----+
| id|value|prev_value|diff|
+---+-----+----------+----+
| 1| 65| null| 0|
| 2| 66| 65| 1|
| 3| 65| 66| -1|
| 4| 68| 65| 3|
| 5| 71| 68| 3|
+---+-----+----------+----+
参考:https://www.arundhaj.com/blog/calculate-difference-with-previous-row-in-pyspark.html
https://www.jianshu.com/p/55efdcabd163
pyspark之dataframe当前行与上一行值求差相关推荐
- 当前行取上一行或者下一行数据作为独立列
当前行取上一行或者下一行数据作为独立列 Lead over 函数可以获取当前行的后第N行作为独立列 Lag over 函数可以获取当前行的前第N行作为独立列 注 : orcle才有上两个函数 , my ...
- python dataframe切片_python-如何避免“试图在DataFrame的切片副本上设置值”?
我有一个数据框df_original: a b 0 10 5 1 12 6 2 14 1 现在,我想制作一个包含所有行的新数据框,其中c> 5,然后在此新数据帧上设置新的列值: df = df_ ...
- R语言使用Hmisc包的impute函数填充dataframe数据中特定数据列中的缺失值、将空值null用上一行和下一行值的平均值填充
R语言使用Hmisc包的impute函数填充dataframe数据中特定数据列中的缺失值.将空值null用上一行和下一行值的平均值填充 目录
- pySpark创建DataFrame的方式
pySpark创建DataFrame的方式 有时候需要在迭代的过程中将多个dataframe进行合并(union),这时候需要一个空的初始dataframe.创建空dataframe可以通过spark ...
- c++怎么取消换行或回到上一行
在 C 语言中,可以使用转义字符来取消换行或回到上一行. 如果要在输出语句中取消换行,可以使用转义字符 \ 来在末尾输出一个不换行的字符,例如: printf("这是第一行\t这是第二行&q ...
- Pyspark 读 DataFrame 的使用与基本操作
一.安装 基于 mac 操作系统 安装 jdk jdk 下载地址 安装 pyspark pip install pyspark 二.读取 HDFS 文件 读 json 注意,如果是多行的 json,需 ...
- 致远OA表单自定义函数(取上一行金额)
需求探讨 前期,在我开始分享自定义函数时,有同事就建议小编研究一下取重复表上一行金额的自定义函数. 解决办法:主表中控件取出明细表金额数组,然后利用当前行的行号计算出上一行的行号,最后查找数组中对应行 ...
- c语言中空行作用,用C语言删除空行(上一行)。
满意答案 winters74 2017.03.31 采纳率:42% 等级:11 已帮助:1125人 #include #include //for function exit() #includ ...
- python dataframe取某行某列_pandas dataframe.apply() 实现对某一行/列进行处理获得一个新行/新列...
重点: dataframe.apply(function,axis)对一行或一列做出一些操作(axis=1则为对某一列进行操作,此时,apply函数每次将dataframe的一行传给function, ...
最新文章
- php下扩展php_curl.dll的安装
- linux运维常用命令
- 在下列计算机应用项目中,属于过程控制应用领域的是,计算机基础试题.ppt
- [转]暴牛!全国女生录用老公统一考试试卷
- jQuery.fn.load调用时给url加selector之后执行脚本的方法
- python字符串匹配的准确率_说说在 Python 中,如何找出所有字符串匹配
- markdown与word相互转换的快捷方法
- WinForm(一) WinForm入门与基本控件使用
- 【服务器】服务器运维必备软件;服务器安装环境、运维教程
- 云计算发展现状及未来趋势
- 一文说明白ECDSA spec256k1 spec256r1 EdDSA ed25519千丝万缕的关系
- 计算机的操作系统的功能有哪些,操作系统的主要功能是主要有哪些类型
- fastjson之@JSONField注解的几个的使用详细示范
- C#学习笔记004——生成(创建)文本文件
- Davinci数据可视化-新增图表类型-旭日图
- ESXI ssh 登录
- 机器学习中训练的模型,通俗理解
- 织梦php 文章采集规则,dedecms采集怎么用
- echart 人物关系图添加照片
- Spring框架中IOC和DI的区别
热门文章
- PyQt5中的lambda表达式的使用
- python量化投资代码_手把手教你用三行python 代码做一个动量策略「量化投资系列」...
- python合并视频和音频_FFMpeg无损合并视频的多种方法 python | 猴头客
- 文本处理工具及正则表达式
- react生命周期总结
- 购买抖币显示苹果服务器异常,抖音刷礼物为什么显示当前设备不支持苹果应用内支付?...
- 苹果电脑系统怎么重装?这几步就可以轻松搞定
- Gingko Framework:session的使用
- 时间窗口算法用matlab,一种基于动态规划算法的时间窗口相关的参与者选择方法与流程...
- Jove:@AlanCui 在手机上用QQ或GTalk来贴Fanfou吧, 不用敲空格或省略号. 好像你输入多少个中文字符就要补多少个空格...