sc.WholeTextFiles与sc.textFile区别

时间:2023-03-09 22:49:51
sc.WholeTextFiles与sc.textFile区别
val data1 = sc.wholeTextFiles("/opt/test")
val data  = sc.textFile("/opt/test/")

使用textFile时,它的partition的数量是与文件夹下的文件数量相关,一个文件就是一个partition。

wholeTextFiles的partition数量是根据用户指定或者文件大小来确定。  个人觉得它通常用于读取许多小文件的需求。

进行测试:

/opt/test下边有五个文件。

然后进行数据加载并指定分区:

val data  = sc.textFile("/opt/test/",1)
data.partitions.length

输出5,这是因为文件是有5个,所以必须是要有5个分区的。

val data1 = sc.wholeTextFiles("/opt/test")
data1.partitions.length

输出1,确定partition数量与文件数量是无关的