在spark中,我明白了如何使用wholeTextFiles
and textFiles
,但我不确定何时使用哪个。到目前为止我所知道的是:
- 当处理不按行分割的文件时,应该使用
wholeTextFiles
,否则使用textFiles
.
我认为默认情况下,wholeTextFiles
and textFiles
分别按文件内容和行分区。但是,它们都允许您更改参数minPartitions
.
那么,更改分区如何影响它们的处理方式?
例如,假设我有一个非常大的文件,有 100 行。将其处理为有什么区别wholeTextFiles
有 100 个分区,并将其处理为textFile
(逐行分区)使用默认分区 100。
这些有什么区别呢?
以供参考,wholeTextFiles
uses WholeTextFileInputFormat
这延伸了组合文件输入格式.
一些注释wholeTextFiles
.
- RDD 中的每条记录由
wholeTextFiles
具有文件名和文件的全部内容。这意味着文件(根本)不能被分割。
- 因为它延伸了
CombineFileInputFormat
,它会尝试将一组较小的文件合并到一个分区中。
如果一个目录中有两个小文件,则这两个文件可能最终会出现在一个分区中。如果我设置minPartitions=2
,那么我可能会取回两个分区。
现在如果我要设置minPartitions=3
,我仍然会拿回两个分区,因为合同wholeTextFiles
RDD 中的每条记录都包含一个完整的文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)