依赖于自身的 Spark 窗口函数

2024-01-10

假设我在 DataFrame 中有一列已排序的时间戳。我想编写一个函数,向该 DataFrame 添加一列,根据以下规则将时间戳切割成连续的时间片:

  • 从第一行开始并继续迭代到最后
  • 对于每一行,如果您在当前组中走了 n 行,或者您在当前组中走了超过时间间隔 t,则进行剪切
  • 返回一个新列,其中包含每行的组分配,该列应该是一个递增的整数

英文:每组不应超过 n 行,且跨度不应超过 t 时间

例如:(使用整数作为时间戳来简化)

INPUT

     time
---------
        1
        2
        3
        5
       10
      100
     2000
     2001
     2002
     2003

OUTPUT(在 n = 3 和 t = 5 的切片函数之后)

     time | group
----------|------
        1 |     1
        2 |     1
        3 |     1
        5 |     2 // cut because there were no cuts in the last 3 rows
       10 |     2
      100 |     3 // cut because 100 - 5 > 5
     2000 |     4 // cut because 2000 - 100 > 5
     2001 |     4
     2002 |     4
     2003 |     5 // cut because there were no cuts in the last 3 rows

我感觉这可以通过 Spark 中的窗口函数来完成。毕竟,创建窗口函数是为了帮助开发人员计算移动平均值。您基本上会计算 n 行的每个窗口的一列(股票价格)的合计(在本例中为平均值)。

在这里应该能够完成同样的事情。对于每一行,如果最后n行不包含cut,或者最后一次cut与当前时间戳之间的时间跨度大于t,cut = true, o.w. cut = false。但我似乎无法弄清楚如何让窗口函数意识到自己。这就像知道最后一个移动平均线的特定行的移动平均线。


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

依赖于自身的 Spark 窗口函数 的相关文章

随机推荐

  • 延迟加载或巨大的 CSS-sprite(大小为 9MB)

    条件 这是一个电影网站 约有 1000 张 15kb 的图像 大约 70 的图像将在页面访问时加载 图像的有效期很长 我想我会选择 CSS sprites 因为大多数图像都会被访问者以任何方式加载 但所有图像的 CSS sprite 都是
  • 使用XMPP或WebSocket,为什么用户之间的实时通信需要服务器?

    在底层 都是关于套接字通信的 如果有某种方法可以获取两个用户的IP 为什么不能直接在用户之间建立连接 而必须通过中间的服务器 我的2分钱 没有人强迫我们拥有基于服务器的实时通信模型 事实上 XMPP 有一个扩展名为 无服务器消息传递 htt
  • 使用 stat_summary 的标准误差线

    以下代码使用 Hmisc ddply 和 ggplot 生成带有标准误差条的条形图 means se lt ddply mtcars cyl function df smean sdl df qsec mult sqrt length df
  • adb 设备与 ADB wireless 离线

    由于某些原因 我的手机无法再使用电缆 我在互联网上看到可以通过 Wifi 将 adb 连接到 但是我尝试了一下 得到了这个 adb devices List of devices attached 192 168 1 2 5555 offl
  • Django + Google SSO openid

    我想要我的申请http app acquee com designer http app acquee com designer接受谷歌帐户作为登录 我找到了一堆 django 库 但大多数都是在我不使用的现有 Django 身份验证系统之
  • Django 开发服务器消息 - 它们是什么意思?

    如果我运行 Django 开发服务器并在浏览器中查看我的应用程序 我会收到如下消息 08 一月 2011 18 12 45 获取 HTTP 1 1 200 2714 08 一月 2011 18 12 45 获取 static style c
  • 嵌套列表:对列表中每个子元素的不同元素应用不同的函数

    我必须加载两种类型的数据集 使用不同的函数进行处理 然后连接在一起 我有每种类型的多个数据集 它们的名称存储在嵌套列表中 我想将两个不同的函数 或一个标识嵌套列表中每个数据集的函数 应用于嵌套列表中的每个子元素 我尝试了 lapply sa
  • Java中的动态ArrayList

    我对java有一个疑问 我们可以创建动态的吗 ArrayList or String 在 for 循环内 例如 在我的应用程序中 有类别字段 不是静态的 从服务器获取 我想创建ArrayList or String 基于类别大小的对象 如何
  • 允许任何语言的字母(如“ñ”)的正则表达式

    尝试让用户使用其他语言 例如西班牙语或法语 中的特殊字符 我原来有这个 A Za z0 9 i 然后将其更改为 p L p N i 但仍然不起作用 应允许使用诸如 之类的字母 谢谢 修订 我发现在开头加上 UTF8 有助于解决问题 所以我使
  • Nodejs 可以与 Cakephp 集成吗?

    我想实时监控用户输入的数据comments桌子 我有一个 Apache 服务器正在运行 并且假设它在端口 1337 上有一个节点服务器 每次有人保存新数据时 我该怎么做 例如返回表中的总行数comment并显示在view 也许方法是使 th
  • 自动展开PropertyGrid中的一些属性

    我想通过使用该类的属性来自动展开加载了我的 SettingsStructure 类的实例的 PropertyGrid 中的一些节点 另外 如果用户在 PropertyGrid 上再次加载该实例 我试图让实例 记住 每个属性是否已展开 我做了
  • 在SQL中显示表的结构

    有人可以向我更好地解释一下吗 如何显示表的结构 我运行select from table 当然它会显示表中的所有内容 但是 我被要求显示表的结构 这是什么意思 命令是什么 这是我的下表 SQL gt select from dept DEP
  • 我应该在 Python 中使用“公共”属性还是“公共”属性?

    在 Python 中 我有以下示例类 class Foo self attr 0 property def attr self return self attr attr setter def attr self value self at
  • 从 data.table 聚合返回多列[重复]

    这个问题在这里已经有答案了 我想用data table作为替代aggregate or ddply 因为这两种方法没有像希望的那样有效地扩展到大型对象 不幸的是 我还没有弄清楚如何让向量返回聚合函数在结果中生成多列data table 例如
  • Bootstrap 3:嵌套选项卡

    我试图将一个选项卡放在一个选项卡内 但是每当我单击内部嵌套选项卡时 整个内部嵌套选项卡行就会消失 这是 jsfiddle 中的示例 http jsfiddle net jNWMY 1 http jsfiddle net jNWMY 1 尝试
  • 创建原始数据包来欺骗 UDP 数据包

    我正在寻找使用 Java 欺骗 UDP 数据包 有没有好的 Java 库可以让您创建自己的原始套接字 我会使用一个 Java API 来包装libpcap http www tcpdump org libpcap 有一个 注入 功能 允许您
  • 如何不在nginx访问日志中记录get请求参数?

    我需要启用访问日志 但出于合规性原因 无法在访问日志中记录敏感 GET 请求参数的数据 虽然我知道 我可以解析日志 事后 并清理它们 但这不是一个可接受的解决方案 因为出于合规性原因 日志不能被篡改 如何防止 sensitive data
  • 正则表达式匹配除某些之外的所有集合

    我确定以前曾问过这个问题 但我似乎找不到它 或知道要搜索的正确措辞 基本上我想要一个匹配除连字符之外的所有非字母数字的正则表达式 所以基本上匹配 W 除了排除 我不知道如何从预制集中排除特定的 W是一个简写 w So w 一些背景知识 定义
  • 识别批处理文件的运行实例

    这些对我不起作用 有什么帮助可以明确纠正以下四个示例吗 即使我打开了三个 CMD exe EXAMPLE01 也只是回显 继续 示例 01 echo off wmic process where name cmd exe find cmd
  • 依赖于自身的 Spark 窗口函数

    假设我在 DataFrame 中有一列已排序的时间戳 我想编写一个函数 向该 DataFrame 添加一列 根据以下规则将时间戳切割成连续的时间片 从第一行开始并继续迭代到最后 对于每一行 如果您在当前组中走了 n 行 或者您在当前组中走了