有什么方法可以限制重配函数的行数吗?



在spark中,我试图将每个分区中的行数限制为100。但是我不想把它写在文件里。在覆盖

记录之前,我需要对文件执行更多操作。

您可以使用重分区。

要在每个分区中保留n条记录,您需要将数据重新分区为total_data_count/repartition=100

例如:我现在有100条记录,如果我想让每个分区有10条记录,那么我必须将我的数据重新分区为10部分d .repartition(10)

>>> df=spark.read.csv("/path to csv/sample2.csv",header=True) 
>>> df.count()
100
>>> df1=df.repartition(10)
>>> df1
...     .withColumn("partitionId", spark_partition_id())
...     .groupBy("partitionId")
...     .count()
...     .orderBy(asc("count"))
...     .show()
+-----------+-----+
|partitionId|count|
+-----------+-----+
|          6|   10|
|          3|   10|
|          5|   10|
|          9|   10|
|          8|   10|
|          4|   10|
|          7|   10|
|          1|   10|
|          0|   10|
|          2|   10|
+-----------+-----+

这里可以看到每个分区有10条记录

相关内容

  • 没有找到相关文章

最新更新