我正在从事一个涉及一些大于内存的数据集的项目,并且一直在评估用于在集群上而不是在我的本地机器上工作的不同工具。一个看起来特别有趣的项目是 dask,因为它的 DataFrame 类具有与 pandas 非常相似的 API。
我想汇总时间序列相关数据的时间导数。这显然需要按时间戳对时间序列数据进行排序,以便您在行之间取得有意义的差异。但是,dask DataFrames 没有sort_values
方法。
在使用 Spark DataFrame 和使用Window
函数时,对分区内的排序提供了开箱即用的支持。也就是说,您可以执行以下操作:
from pyspark.sql.window import Window
my_window = Window.partitionBy(df['id'], df['agg_time']).orderBy(df['timestamp'])
然后我可以使用这个窗口函数来计算差异等。
我想知道是否有办法在 dask 中实现类似的东西。原则上,我可以使用 Spark,但我有点时间紧迫,而且我对它的 API 的熟悉程度远不如对 pandas 的熟悉。