【问题标题】:Split Spark Dataframe into train and test将 Spark Dataframe 拆分为训练和测试
【发布时间】:2021-03-02 14:42:06
【问题描述】:

我想将我的 Spark Dataframe 拆分为训练并使用以下条件进行测试 -

  1. 我希望能够重现拆分,这意味着对于每个 同一个 DataFrame 的时间,我就能进行同一个拆分。
  2. 应从列名序列 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)

【问题讨论】:

    标签: python pandas pyspark


    【解决方案1】:

    如果您的 df 是 Spark DataFrame,您可以使用 randomSplit() 函数根据权重百分比拆分您的 DataFrame。

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

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

    【讨论】:

      猜你喜欢
      • 2023-01-24
      • 2016-02-22
      • 1970-01-01
      • 1970-01-01
      • 2020-06-08
      • 2020-06-18
      • 2017-06-11
      • 2023-03-11
      相关资源
      最近更新 更多