分区数如何影响`wholeTextFiles`和`textFiles`?

Sot*_*her 5 python apache-spark pyspark

在火花中,我理解如何使用wholeTextFilestextFiles,但我不知道何时使用.这是我目前所知道的:

  • 处理不是按行分割的文件时,应该使用wholeTextFiles,否则使用textFiles.

我会在默认情况下,想wholeTextFilestextFiles按文件内容的分区,并通过线,分别.但是,它们都允许您更改参数minPartitions.

那么,更改分区如何影响这些处理的方式呢?

例如,假设我有一个包含100行的非常大的文件.处理它wholeTextFiles与100个parti 之间的区别,并textFile使用默认的parition 100将其处理为(逐行分区).

这些有什么区别?

Mik*_*ark 6

供参考,wholeTextFiles用于WholeTextFileInputFormat扩展CombineFileInputFormat.

几个笔记wholeTextFiles.

  • 返回的RDD中的每条记录wholeTextFiles都有文件名和文件的全部内容.这意味着无法拆分文件(根本).
  • 因为它扩展了CombineFileInputFormat,它会尝试将较小文件组合并到一个分区中.

如果我在目录中有两个小文件,则两个文件可能最终都在一个分区中.如果我设置minPartitions=2,那么我可能会返回两个分区.

现在,如果我要设置minPartitions=3,我仍将返回两个分区,因为合同wholeTextFiles是RDD中的每个记录都包含整个文件.