【发布时间】: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
我想根据时间对已排序的 Pyspark 数据帧进行训练测试拆分。假设前 300 行将在训练集中,接下来的 200 行将在测试拆分中。
我可以选择前 300 行 -
train = df.show(300)
但是如何从 Pyspark 数据框中选择最后 200 行?
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql train-test-split
假设您有一个大小为 500 的数据框 df,按 time 列排序。
一个简单的方法是对训练集使用限制,并在测试集的反向数据帧上做同样的事情。
from pyspark.sql.functions import desc
train = df.limit(300)
test = df.orderBy(desc("time")).limit(200).orderBy("time")
【讨论】: