如何计算当前行与下一行?

2023-12-21

在 Spark-Sql 1.6 版本中,使用DataFrames,有没有一种方法可以计算特定列的每一行的当前行和下一行的总和?

例如,如果我有一个只有一列的表,如下所示

Age
12
23
31
67

我想要以下输出

Sum
35
54
98

最后一行被删除,因为它没有要添加的“下一行”。

现在我正在通过对表格进行排名并将其与自身连接起来来做到这一点,其中rank等于rank+1.

有一个更好的方法吗? 这可以通过Window功能?


是的,你绝对可以这样做Window函数通过使用rowsBetween功能。我用过person列为grouping我下面的例子的目的。

import sqlContext.implicits._
import org.apache.spark.sql.functions._

val dataframe = Seq(
  ("A",12),
  ("A",23),
  ("A",31),
  ("A",67)
).toDF("person", "Age")

val windowSpec = Window.partitionBy("person").orderBy("Age").rowsBetween(0, 1)
val newDF = dataframe.withColumn("sum", sum(dataframe("Age")) over(windowSpec))
  newDF.filter(!(newDF("Age") === newDF("sum"))).show
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何计算当前行与下一行? 的相关文章

随机推荐

  • 非常大且非常稀疏的非负矩阵分解

    我有一个非常大且稀疏的矩阵 531K x 315K 单元格总数约为 1670 亿 非零值仅为 1s 非零值总数约为 45K 有高效的 NMF 包来解决我的问题吗 我知道有几个软件包可以实现这一点 并且它们仅适用于小尺寸的数据矩阵 任何想法都
  • WPF 将父绑定对象传递给转换器

    我有 ItemsControl 绑定到 Student 类型的集合 在 ItemTemplate 内部 我有一个 TextBox 它使用 IValueConverter 来执行一些自定义计算和逻辑 我想将实际的 Student 对象传递给值
  • 如何使用jquery在加载时滑动整个页面

    我想在更改时将整个页面向下滑动 我想做到这一点的方法是创建一个垂直幻灯片 在单击链接时播放 并在页面加载时再次播放 到目前为止 我只能创建影响特定 DIV 的幻灯片 我还希望它能够垂直滑入 任何想法将不胜感激 只需将所有内容包装在一个 di
  • 为什么应该仅在 1 个元素张量上或使用变量的梯度来调用向后函数?

    我是 pytorch 的新手 我想了解为什么我们不能对包含大小为 2 2 的张量的变量调用后向函数 如果我们确实想在包含大小为 2 2 的张量的变量上调用它 我们必须首先定义一个梯度张量 然后在包含张量 w r t 定义的梯度的变量上调用后
  • C# 如何使用 DataAnnotations StringLength 和 SubString 删除文本

    我有一个模型类 它有一个描述属性 其数据注释属性为 StringLength 长度设置为 100 个字符 当此属性超过 100 个字符并且实体框架尝试保存此属性时 我收到以下错误 StringLength 100 ErrorMessage
  • SQL:条件 AND in where

    我正在尝试创建一个允许省略参数的存储过程 但如果提供了参数则进行 AND 操作 CREATE PROCEDURE MyProcedure LastName Varchar 30 NULL FirstName Varchar 30 NULL
  • Apache Commons CLI - 订购帮助选项?

    我正在使用 Apache Commons CLI 默认情况下 它按字母顺序对命令行上的帮助选项进行排序 那么 出现的就是 csv ip msisdn xml 但我想按如下方式订购它们 csv xml ip msisdn 我知道您可以使用一个
  • 通过 Access 中的 ODBC 链接表更新 SQLite 数据库

    我在使用 SQLite 数据库时遇到问题 我正在使用 SQLite ODBChttp www ch werner de sqliteodbc http www ch werner de sqliteodbc 安装 64 位版本并使用以下设置
  • OpenERP (Odoo) 在哪里找到模块路径?

    我正在使用 Odoo v 8 我想找出 Odoo 在哪里找到模块所在的信息并加载它们 我知道文件 openerp server conf 中有一个变量 addons path 我找到该变量的唯一文件是 opt odoo odoo debia
  • Python:按索引过滤列表

    在Python中我有一个元素列表aList和索引列表myIndices 有什么方法可以一次检索所有这些项目aList将以下值作为索引myIndices Example gt gt gt aList a b c d e f g gt gt g
  • 在 JavaScript 中保存哈希/锚点更改的历史记录

    我目前正在实现一个 JavaScript 库 用于跟踪地址栏中哈希部分的更改历史记录 这个想法是 您可以在哈希部分保留一个状态 然后使用后退按钮返回到之前的状态 在大多数最新的浏览器中 这是自动的 您只需轮询location hash属性进
  • npm run 运行缓慢

    我曾经通过 Makefile 运行各种命令 但对于 Nodejs 项目来说 package json 是更合适的地方 通过 npm 运行命令效果很好 但与命令时间执行相比非常慢 time node modules bin jshint no
  • IIS 7.5 修复尝试加载格式不正确的程序问题?

    我遇到一个异常问题 抛出异常 尝试加载格式不正确的程序 错误 我在同一台 IIS 服务器上有两个相同的网站 我的构建配置适用于其中一个 但不适用于另一个 我的 C MVC 2 Web 应用程序可以部署到驻留在同一 IIS 7 5 Web 服
  • 有没有比 dict() 更快的东西?

    我需要一种更快的方式来存储和访问大约 3GB 的数据k v对 在哪里k是一个字符串或一个整数并且v is an np array 可以有不同的形状 是否有任何对象在存储和访问这样的表时比标准 python 字典更快 例如 一个pandas
  • SceneKit 在立方体测试中的性能

    在学习游戏 3D 图形编程时 我决定从使用 Scene Kit 3D API 开始简单 我的第一个游戏目标是构建一个非常简化的 我的世界 的模仿版 一个只有立方体的游戏 这有多难 下面是我编写的一个循环 用于放置 100 x 100 立方体
  • Fragments 中的“onViewStateRestored”如何工作?

    我真的对 Fragment 的内部状态感到困惑 我有一个活动一次只保存一个片段 并在应该显示另一个片段时替换它 来自文档onSaveInstanceState叫做ONLY如果活动onSaveInstanceState正在被调用 在我的例子中
  • 预加载图像的最佳方式

    预加载图像的最佳方法是什么 我正在尝试创建一个包含大约 59 张 png 图像的图像选项卡 这是我到目前为止的代码
  • 当 SBValue 来自 Swift 字典时,SBData 是错误的

    我正在尝试编写一个Python函数来格式化Foundation Decimal 用作类型摘要器 我把它发布在这个答案 https stackoverflow com a 52749749 77567 我还将它包含在这个答案的底部 并带有额外
  • GCC 使用 typedef 不兼容的指针类型

    我有一些代码在 GCC 4 8 4 下编译得很好 我最近升级了我的系统 现在有了 GCC 5 2 1 并且我收到了有关不兼容指针类型的警告 我已将问题提取到一个重现错误的小示例中 typedef const double ConstSpic
  • 如何计算当前行与下一行?

    在 Spark Sql 1 6 版本中 使用DataFrames 有没有一种方法可以计算特定列的每一行的当前行和下一行的总和 例如 如果我有一个只有一列的表 如下所示 Age 12 23 31 67 我想要以下输出 Sum 35 54 98