我有一个大约有 500 万行的数据框。如何以编程方式将数据帧的大小增加 5 倍以进行一些性能测试。下面是数据框的示例。 id_nbr、id_itm 和 id_line 的组合使每一行都是唯一的。我想通过以编程方式填充唯一的 id_nbrs 来将该数据帧的大小增加 5 倍。有人可以帮助我如何去做吗?
id_nbr id_itm id_line col4 col5
50000001 100 101
50000001 100 102
50000002 200 201
50000002 200 202
50000007 100 101
50000020 300 301
50000021 300 301
您可以将相同的数据帧合并 5 次,例如:
df.union(df).union(df).union(df).union(df)
如果您想要一个唯一的 ID 列并且没有双值,您可以为每个数据帧向该列添加一个常量值,例如:
df.union(df.withColumn("id", col("id") + 5)).union(df.withColumn("id", col("id") + 15)).union(df.withColumn("id", col("id") + 25)).union(df.withColumn("id", col("id") + 25))
当然,您可以根据 id 列值调整常量值,以确保不具有相同的值。
如果您不确定如何选择常量值,您可以获取数据框中 id 列的最大值,我们将其称为 mx,然后为每个数据框添加 mx,然后是 2 * mx,然后是 3*mx ...然后5 * mx,这将保证唯一值。