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”)> > >文本文件=sc。wholeTextFiles(dirPath)> > >排序(文本文件。收集())((“…/ 1。txt”、“1”), (“…/ 2。txt”、“2”)