python - 将 Spark Dataframe 拆分为训练和测试

标签 python pandas pyspark

我想按照以下条件将 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)

最佳答案

如果您的 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/

相关文章:

python - 如何通过 ParentAuction 列对表进行数据透视表,以便我得到如图所示的输出

python - 计算 PySpark 中特定值的连续出现次数

sql - pyspark sql数据框只保留空值

python - 如何获得两个字符串之间的秒数差异?

python - 根据条件在另一个数据框列上按组计算缺失值的数量

python - Django 设置帮助在venv : Attribute error: 'module' object has no attribute 'get_version'

python - 捕获主目录中所有子文件夹中的所有 csv 文件 - Python 3.x

postgresql - 使用 JDBC 导入 Postgres 时如何对 Spark RDD 进行分区?

python - Matplotlib 中 X 轴中的换行符导致不希望的窗口大小调整/跳跃/闪烁行为

python - 如何解绑Kivy语言自动绑定(bind)的属性?