我想按照以下条件将 Spark Dataframe 拆分为训练和测试 -
- 我希望能够重现分割,这意味着对于每个 对于相同的 DataFrame,我将能够进行相同的拆分。
- 分割应取自列名序列 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)
最佳答案
如果您的 df 是 Spark DataFrame,您可以使用 randomSplit()
函数根据权重百分比拆分 DataFrame。
此外,它还接受一个种子,您可以使用它来初始化随机分割数据的伪随机数生成器,因此每次都有相同的分割。
train, test = df.randomSplit(weights=[0.8,0.2], seed=200)
关于python - 将 Spark Dataframe 拆分为训练和测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64908180/