pyspark.SparkContext.wholeTextFiles

SparkContext。 wholeTextFiles ( 路徑:str,minPartitions:可選(int]=沒有一個,use_unicode:bool=真正的 )→pyspark.rdd.RDD(元組(str,str] ]

從HDFS讀取文本文件的目錄,一個本地文件係統(可在所有節點),或任何文件係統Hadoop-supported URI。每個文件讀取並返回一個記錄的鍵-值對,關鍵是每個文件的路徑,該值為每個文件的內容。文本文件必須編碼為utf - 8。

如果use_unicode是假的,字符串將被作為str(編碼utf - 8),這是更快,小於unicode。(1.2中添加火花)

例如,如果您有以下文件:

hdfs: / / a-hdfs-path / - 00000 hdfs部分:/ / a-hdfs-path /部分- 00001…hdfs: / / a-hdfs-path / part-nnnnn

抽樣=sparkContext.wholeTextFiles (“hdfs: / / a-hdfs-path”),然後抽樣包含:

(a-hdfs-path / - 00000部分,其內容)(a-hdfs-path / - 00001部分,其內容)……(a-hdfs-path / part-nnnnn,其內容)

筆記

小文件是首選,因為每個文件將完全在內存中加載。

例子

> > >dirPath=操作係統路徑加入(tempdir,“文件”)> > >操作係統mkdir(dirPath)> > >開放(操作係統路徑加入(dirPath,“1. txt”),“w”)作為file1:_=file1(“1”)> > >開放(操作係統路徑加入(dirPath,“2. txt”),“w”)作為file2:_=file2(“2”)> > >文本文件=scwholeTextFiles(dirPath)> > >排序(文本文件收集())((“…/ 1。txt”、“1”), (“…/ 2。txt”、“2”)