【Spark】SparkCore深入解析(一)

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述

(图片来源于网络,侵删)


【1】textFile() 与 sc.wholeTextFiles的区别

1)当指定的路径是目录且该目录下全部都是文件时,textFile() 和 wholeTextFiles() 都正常读取
2)当指定的路径是文件时,textFile() 和 wholeTextFiles() 都正常读取
3)当指定的路径是目录且该目录下既有文件也有目录时,textFile() 会报错, wholeTextFiles() 正常读取该目录下的所有文件

1)textFile读取文件的每一行作为 列表List的 一条记录,所以返回一个RDD[String]
2) wholeTextFiles() 读取是按照文件进行读取,返回一个RDD[(key, val)],其中key是该文件的文件路径,value是这个文件的所有数据,所以我们对value进行数据解析(例如通过\r\n将数据进行按行切分),才能对文件数据进行操作

【2】textFile() 读取数据分区数量规则

如果不指定默认分区数量,则默认分区数量为2,则会根据 所有文件字节大小totalSize 除以 分区数量partitons的值 goalSize,然后比较 goalSize 和 hdfs指定分块大小(这里是32M)作比较,以较小的最为goalSize作为切分大小,对每个文件进行切分,若文件大小大于goalSize,则会生成 totalSize / goalSize + 1个分区

未完待续…


都看到这里了,点赞评论一下吧!!!

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43733123/article/details/106141874