您的位置 首页 > 数码极客

如何并行读取两个文件流

通常我们会使用textFile()和wholeTextFile()方法读取本地文件系统和hdfs上的文件,或者任意Hadoop支持的文件系统,他们都支持并行读取多个文件,可是你知道他们的区别吗?

读取特定文件路径中的所有文件 ,并且为每个文件建立一个分区,例如有5个文件被读入,那么rdd就包含5个分区。(如果是从hdfs读取数据,分区数和block数量相关)

注: 以下代码使用pyspark完成

>> path= "/data/*.csv" #目录中包含5个csv文件 >> rdd2 = (path) >> rdd2.getNumPartitions() 5

() 读取特定路径中的所有文件,并且返回一个PairRDD,PairRDD包含一个 文件路径的key和文件内容作为value,rdd分区数由任务的executors的数目来决定。 你也可以通过传递给WholeTextFiles一个特定分区数来改变默认分区。

>> path= "/data/*.csv" #目录中包含5个csv文件 >> rdd1 = (path,3) >> rdd1.getNumPartitions() 3

另外,分区数还受其他几个参数的影响,比如 以及 hdfs的block size ,使用时要注意匹配使用。

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何并行读取两个文件流”边界阅读