Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark sql.shuffle.partitions是如何工作的?它如何影响输出零件文件的大小?_Apache Spark_Pyspark_Apache Spark Sql_Spark Dataframe - Fatal编程技术网

Apache spark sql.shuffle.partitions是如何工作的?它如何影响输出零件文件的大小?

Apache spark sql.shuffle.partitions是如何工作的?它如何影响输出零件文件的大小?,apache-spark,pyspark,apache-spark-sql,spark-dataframe,Apache Spark,Pyspark,Apache Spark Sql,Spark Dataframe,我在spark上工作了很长一段时间。在当前的项目中,我正在处理数据帧,并使用sql.shuffle.partitions进行优化 我发现调整此属性会影响以下内容: 运行时间 输出文件数 每个输出文件的大小 根据我的观察,我发现这个参数与输出文件大小成反比。在极少数情况下,不确定原因,但增加此特性的值会反过来增加输出零件文件的大小 ---------------------------------------------------------比如说----------------------

我在spark上工作了很长一段时间。在当前的项目中,我正在处理数据帧,并使用sql.shuffle.partitions进行优化

我发现调整此属性会影响以下内容:

  • 运行时间
  • 输出文件数
  • 每个输出文件的大小
根据我的观察,我发现这个参数与输出文件大小成反比。在极少数情况下,不确定原因,但增加此特性的值会反过来增加输出零件文件的大小

---------------------------------------------------------比如说--------------------------------------------------------

Scenario 1:
sql.shuffle.partitions:91 |输出文件数:91 |大小 每个输出文件:4.3 MB

sql.shuffle.partitions:80 |输出文件数:80 |大小 每个输出文件:5.1 MB

sql.shuffle.partitions:92 |输出文件数:92 |大小 每个输出文件:4.1 MB


正如您可以从上面的示例中看到的,不清楚为什么输出文件的大小不是预期的大小

我尝试了其他选项,如合并和重新分区,它们工作得很好,但增加了运行时间。我需要输出部分文件具有特定的大小,因为我需要稍后将它们发送到云中,并且上传速度取决于每个文件的大小

我想看看这种行为是否是意料之中的?为什么


谢谢。

我以拼花的形式读取数据,并以csv@Zero323的形式写出数据。我需要控制每个输出零件文件的大小。由于合并和重新分区增加了计算时间,我试图看看sql.shuffle.partitions是否可以帮助我实现这一点。但有时它是不可预测的。所以你提供的尺寸是最大的,平均的,其他的?当您检查总尺寸时,它看起来如何?
Scenario 2:
Scenario 3: