Oxa*_*rey 1 distributed-computing apache-spark
从大 csv 文件读取数据时,spark 中的数据初始partitions发生在什么基础上?
从大 csv 文件读取时,它将如何决定将大文件数据的分区数量/拆分到不同的工作节点中?
谁能分享一下,它是如何完成的?
当使用spark-sql读取非bucketed HDFS文件(例如parquet)时,DataFrame分区的数量df.rdd.getNumPartitions取决于以下因素:
spark.default.parallelism (roughly translates to #cores available for the application)\nspark.sql.files.maxPartitionBytes (default 128MB)\nspark.sql.files.openCostInBytes (default 4MB)\nspark.sql.files.minPartitionNum (optional, introduced in spark 3.1)\nRun Code Online (Sandbox Code Playgroud)\n分区数量的粗略估计是:
\nPartitionSize \xe2\x89\x88 min(maxPartitionBytes, max(4MB, TotalDataSize/#cores))\nNumberOfPartitions \xe2\x89\x88 max(TotalDataSize/PartitionSize, minPartitionNum)\nRun Code Online (Sandbox Code Playgroud)\n具体计算可以参考FilePartition 。
\n| 归档时间: |
|
| 查看次数: |
745 次 |
| 最近记录: |