当前位置: 首页 > 知识库问答 >
问题:

Spark RDD:填充不规则时间序列

郭意
2023-03-14

1,
2,
3,
4,
5,
6,
...等等。

到目前为止,我已经用1,2,3,4,5,6,…创建了一个RDD。然后LeftouterJoin把它转到原来的RDD,它给了我:

1,
2,
3,
4,
5,
6,
...等等。

我更愿意在RDD级别上执行,而不使用sparkSQL,这当然是最后的选择。转到scala数组级别并不是很吸引人,因为考虑到性能问题,我更愿意将其保持在RDD级别。

谢谢

共有1个答案

东门焕
2023-03-14

相对简单的解决方案,无需初始join。让我们从虚拟数据和一个助手函数开始:

val rdd = sc.parallelize(Seq(
    (3L, 1.0), (1L, 4.0), (5L, 3.6), (7L, 0.2), (8L, 0.0)))

def fillTimePoints(xs: Array[(Long, Double)]) = xs match {
  case Array((xTime, xValue), (yTime, _)) => {
    val diff = yTime - xTime

    if (diff == 0) Seq((xTime, xValue))
    else (xTime, xValue) +: (1 until diff.toInt)
      .map(_.toLong)
      .map(i => (i + xTime, xValue))
  }

  case _ => Seq.empty[(Long, Double)]
}

现在剩下的只是滑动排序的RDD:

import org.apache.spark.mllib.rdd.RDDFunctions._

rdd.sortBy(_._1).sliding(2).flatMap(fillTimePoints).collect

//  Array[(Long, Double)] = Array((1,4.0), (2,4.0), (3,1.0), 
//    (4,1.0), (5,3.6), (6,3.6), (7,0.2))

备注:

 类似资料:
  • 本文向大家介绍Android不规则图像填充颜色小游戏,包括了Android不规则图像填充颜色小游戏的使用技巧和注意事项,需要的朋友参考一下 一、概述 近期群里偶然看到一哥们在群里聊不规则图像填充什么四联通、八联通什么的,就本身好学务实的态度去查阅了相关资料。对于这类着色的资料,最好的就是去搜索些相关app,根据我的观察呢,不规则图像填充在着色游戏里面应用居多,不过大致可以分为两种: 基于层的的填充

  • 问题内容: 有没有一种打印Python日期时间的格式,该格式不会在日期和时间上使用零填充? 我现在使用的格式: 结果: 2012年2月29日下午5:03 所需 : 2012年2月29日下午5:03 什么格式将月份表示为“ 2”而不是“ 02”,将时间表示为“ 5:03 PM”而不是“ 05:03 PM” 问题答案: 可用的格式化选项将全部为零填充。您当然可以滚动使用自己的格式化功能,但是在这种情况

  • 问题内容: 我在pandas中有一个时序如下: 我想将其重新采样为具有15分钟时间步长的常规时间序列,其中值是线性插值的。基本上我想得到: 但是使用熊猫的重采样方法(df.resample(‘15Min’))我得到: 我尝试使用不同的“ how”和“ fill_method”参数进行重采样方法,但从未获得我想要的结果。我使用了错误的方法吗? 我认为这是一个相当简单的查询,但我在网上搜索了一段时间,

  • 以下是带符号的样条曲线图的示例。 我们已经在Highcharts Configuration Syntax一章中看到了用于绘制图表的配置 。 现在,让我们讨论一个带符号的样条图表示例。 例子 (Example) highcharts_spline_time.htm <html> <head> <title>Highcharts Tutorial</title> <sc

  • Drools文档提到,规则可以使用诸如生效日期和过期日期之类的属性来指定绝对规则有效期。 例如 Drools还支持周期性重复的规则,间隔为,cron为,但这意味着规则是在这样的点触发的。 我很感兴趣,如果有任何选项如何指定定期可用(不解雇)的规则与时间限制。例如,让我们想象一些公司的营业时间-操作只能在正式工作期间执行,但不能在下班后执行。 我想要这样的东西,但这不是Drools的有效规则 是否可

  • 我维护了一个用flash编写的绘图工具,该工具将其数据保存为荧光笔工具的一系列点,这些点描述了一条粗大的、填充的徒手/点对点线的轮廓。例如,如果用户画了一条水平线,路径将是从左到右的点序列,然后是向下10像素的线,相同的点序列反向回到原点下方10px,那么路径就关闭了 另一个工具通过将json点列表转换为svg路径来周期性地光栅化Flash的数据。路径命令类似于“M 123,456l 1,2 3,