sparkContext的addFile和addPyFile


addFile(path, recursive=False)

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

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

recursive:如果path是文件夾路徑,可以設置recursive為True,然后spark就會遞歸的分發這個文件夾路徑下的所有文件到worker節點,但是只支持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上執行的所有任務增加.py或者.zip文件依賴。path可以是本地文件,HDFS文件,或者HTTP地址,HTTPS地址,FTP URI。



作者:sjdxdd
鏈接:https://www.jianshu.com/p/6442eec4a567
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM