【问题标题】:How to train-test split timeseries data in Pyspark Dataframe如何在 Pyspark Dataframe 中训练测试拆分时间序列数据
【发布时间】:2019-08-04 08:10:23
【问题描述】:

我想根据时间对已排序的 Pyspark 数据帧进行训练测试拆分。假设前 300 行将在训练集中,接下来的 200 行将在测试拆分中。

我可以选择前 300 行 -

train = df.show(300)

但是如何从 Pyspark 数据框中选择最后 200 行?

【问题讨论】:

标签: apache-spark pyspark apache-spark-sql train-test-split


【解决方案1】:

假设您有一个大小为 500 的数据框 df,按 time 列排序。

一个简单的方法是对训练集使用限制,并在测试集的反向数据帧上做同样的事情。

from pyspark.sql.functions import desc
train = df.limit(300)
test = df.orderBy(desc("time")).limit(200).orderBy("time")

【讨论】:

  • 如果我们不知道数据帧的大小并且不想使用计数和窗口函数作为计数和没有分区的窗口函数会降低性能。
  • 对比什么?
猜你喜欢
  • 1970-01-01
  • 2019-05-10
  • 2022-01-21
  • 2020-02-06
  • 2021-01-14
  • 2020-01-23
  • 2019-01-17
  • 2019-09-11
  • 1970-01-01
相关资源
最近更新 更多