如何使用pyspark将数据帧的大小增加5倍

问题描述 投票:0回答:1

我有一个大约有 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
python dataframe apache-spark pyspark apache-spark-sql
1个回答
2
投票

您可以将相同的数据帧合并 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,这将保证唯一值。

© www.soinside.com 2019 - 2024. All rights reserved.