导航菜单
首页 » 无极登录网址 » 正文

锦衣春秋-Spark中并行读取多个文件

一般咱们会运用textFile()和wholeTextFile()办法读取本地文件体系和hdfs上的文件,或许恣意Hadoop支撑的文件体急诊男女系,他们都支撑并行读取多个文件,但是你知道他们的差异锦衣春秋-Spark中并行读取多个文件吗?

sc.textFile 读取特定文件途径中的一切文件 ,而且为每个文件树立一个分区,例如有5个文件被读入,那么r锦衣春秋-Spark中并行读取多个文件dd就包括5个分区。(如果是从hdfs读取数据,分区数和block数锦衣春秋-Spark中并行读取多个文件量相关)

注: 以下代码运用pyspark完结

 >> path= "/data/*.csv" #目录中包括5个csv文件
>> rdd2 = 锦衣春秋-Spark中并行读取多个文件sc.textFile(path)
>> rdd2.getNumPartitions()
5

sc.WholeTextFiles() 读取特定途径中的一切文件,而且回来一个PairRDD,PairRDD包括一个 文件途径的key和文件内容作为value,rdd分区数由使命的executors的数目来决议。 你也能够经过传递给WholeTextFiles一个特定分区数来改动默许分区。

 >> path= "/data/*.csv" #目录中包括5个csv文件
>> rdd1 = sc.wholeTextFiles(path,3)
>> rdd1.getNumParti锦衣春秋-Spark中并行读取多个文件tions()
3

别的,分区数还受其他几个参数的影响,比方 sc.defaultMinPartitions 以及 hd锦衣春秋-Spark中并行读取多个文件fs的block size ,运用时要注意匹配运用。

二维码