将Spark数据帧拆分为训练和测试

2024-06-28 19:36:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将我的Spark数据帧拆分为训练,并在以下条件下进行测试-

  1. 我希望能够复制分割,这意味着每个 时间相同的数据帧,我将能够到相同的分割
  2. 拆分应从列名sequence-id的每个唯一值中提取

目前,我通过将Dataframe转换为Pandas Dataframe并执行以下操作来实现此目的-

test_padnas = df.toPandas()
train_frac = 0.8

train = test_padnas.sort_values(by='sequence_id','timestamp']).groupby('sequence_id',group_keys=False).apply(lambda df: df.sample(frac=train_frac,random_state=200))
test=test_padnas.drop(train.index)

Tags: 数据test目的iddataframepandasdf时间
1条回答
网友
1楼 · 发布于 2024-06-28 19:36:51

如果df是Spark数据帧,则可以使用randomSplit()函数,该函数根据权重百分比分割数据帧

此外,它接受一个种子,您可以使用该种子初始化随机分割数据的伪随机数生成器,因此每次都具有相同的分割

train, test = df.randomSplit(weights=[0.8,0.2], seed=200)

相关问题 更多 >