sparkContext的addFile和addPyFile

addFile(path, recursive=False)

把文件分發(fā)到集群中每個worker節(jié)點,然后worker會把文件存放在臨時目錄下,spark的driver和executor可以通過pyspark.SparkFiles.get()方法來獲取文件的路徑,從而能夠保證driver和每個worker都能正確訪問到文件。因此,比較適合用于文件比較小,但是每個worker節(jié)點都需要訪問的情況,文件比較大的情況下網(wǎng)絡(luò)傳送的消耗時間會比較長。

path:可以是單個本地文件,HDFS文件,或者HTTP地址,HTTPS地址,F(xiàn)TP URI。要在spark job中獲取文件,使用pyspark.SparkFiles.get(filename),通過指定文件名filename獲取文件路徑。

recursive:如果path是文件夾路徑,可以設(shè)置recursive為True,然后spark就會遞歸的分發(fā)這個文件夾路徑下的所有文件到worker節(jié)點,但是只支持HDFS文件夾路徑。

>>> from pyspark import SparkFiles
>>> path = os.path.join(tempdir, "test.txt")
>>> sc.addFile(path)
>>> res_rdd = sc.textFile(SparkFiles.get(path))

addPyFile(path)

為SparkContext上執(zhí)行的所有任務(wù)增加.py或者.zip文件依賴。path可以是本地文件,HDFS文件,或者HTTP地址,HTTPS地址,F(xiàn)TP URI。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容