Pyspark 中的范围分区
Range Partitioning in Pyspark
假设我有一个包含 1,000,000 个 ID 的数据集。我将如何按范围对 100 个分区进行分区。我在 Scala 中看到了 RangePartitioner class,但它似乎在 PySpark API 中不可用。
我有一个非常大的数据集,目前正在按唯一 ID 进行分区,但这会创建太多分区。我想知道 PySpark
中范围分区的最佳实践
df.write.partitionBy('unique_id').mode('overwrite').csv(file://test/)
这会将每个 ID 放入其自己的分区中。
我似乎找不到任何关于 PySpark 范围分区的文档。
对于pyspark 2.4及以上版本,可以使用pyspark.sql.DataFrame.repartitionByRange
:
df.repartitionByRange(100, 'unique_id').write.mode('overwrite').csv('file:://test/')
假设我有一个包含 1,000,000 个 ID 的数据集。我将如何按范围对 100 个分区进行分区。我在 Scala 中看到了 RangePartitioner class,但它似乎在 PySpark API 中不可用。
我有一个非常大的数据集,目前正在按唯一 ID 进行分区,但这会创建太多分区。我想知道 PySpark
中范围分区的最佳实践df.write.partitionBy('unique_id').mode('overwrite').csv(file://test/)
这会将每个 ID 放入其自己的分区中。
我似乎找不到任何关于 PySpark 范围分区的文档。
对于pyspark 2.4及以上版本,可以使用pyspark.sql.DataFrame.repartitionByRange
:
df.repartitionByRange(100, 'unique_id').write.mode('overwrite').csv('file:://test/')