Apache spark 随时间变化的三角洲Spark数据处理

Apache spark 随时间变化的三角洲Spark数据处理,apache-spark,pyspark,apache-spark-sql,data-partitioning,Apache Spark,Pyspark,Apache Spark Sql,Data Partitioning,我的数据集列看起来像 设备名称日期categorycol1categorycol2categorycol10valuecol1valuecol2值col1000 现在,我每天记录一次数据流,这些数据流在HDF中按天排列成文件夹。 因此,人们可以读取每个文件夹来获取这些数据 valuecol1和valuecol2是递增计数器,意味着它们只会递增。为了得到合理的值,我们必须得到一个delta。 例如,对于device1,我们需要获得在date2记录的valuecol1和date1之间的差异 还要计算

我的数据集列看起来像
设备名称
日期
categorycol1
categorycol2
categorycol10
valuecol1
valuecol2
<代码>值col1000

现在,我每天记录一次数据流,这些数据流在HDF中按天排列成文件夹。 因此,人们可以读取每个文件夹来获取这些数据

valuecol1
valuecol2
是递增计数器,意味着它们只会递增。为了得到合理的值,我们必须得到一个delta。 例如,对于
device1
,我们需要获得在
date2
记录的
valuecol1
date1
之间的差异

还要计算新值,例如

calculation1
=
在日期2和日期1记录的值col1之间的差异
+
在日期2和日期1记录的值col2之间的差异

现在,在最后,我们收集了诸如
mean
std
media

问题:时间序列没有像股票行情数据那样进行共定位

下面的操作会导致大量的洗牌

  • 使用
    join
    在不同的
    日期与数据集本身连接以获得差异
  • groubbykey
    reducebykey
    用于获取类别cols上的聚合

  • 您是否可以建议处理此数据处理的最佳策略

    我不完全了解数据处理,但为了避免在连接操作后出现混乱,您可以在连接操作之前创建一个伪单调列(或使用数据集中现有的单调列),并在连接之后简单地创建一个
    orderby
    。groupby也一样,对你有用吗?