取消
顯示的結果
而不是尋找
你的意思是:

Pyspark:您不能使用dbutils火花內工作

Nandini
新的貢獻者二世

我試圖在磚parallelise拷貝文件的執行。利用多個執行器是一種方法。所以,這是一段代碼,我在pyspark寫道。

def parallel_copy_execution (src_path: str target_path: str): files_in_path = dbutils.fs.ls (src_path) file_paths_df = spark.sparkContext.parallelize (files_in_path) .toDF file_paths_df ()。foreach(λx: dbutils.fs.cp (x.path.toString (), target_path,遞歸= True))

我拿來所有文件複製和創造了Dataframe。當試圖運行一個foreach在DataFrame我得到以下錯誤。它說

“你不能使用內dbutils火花工作”

你不能使用dbutils內引發工作或否則泡菜。如果你需要使用內getArguments火花的工作,你必須在使用前得到的參數。例如,如果您有以下代碼:myRdd。地圖(λ我:dbutils.args.getArgument (X) + str(我)那麼你應該這樣使用它:argX = dbutils.args.getArgument myRdd (X)。地圖(λ我:argX + str(我))

但當我試著在Scala中相同。它的工作原理。內部使用dbutils火花工作。將這段代碼。

def parallel_copy_execution (p:字符串,t: String):單位= {dbutils.fs.ls (p) . map (_.path) .toDF。= > dbutils.fs.cp foreach{文件(文件(0)。toString, t,遞歸= true) println (s“cp文件:$文件”)}}

Pyspark API不是更新來處理呢?

如果是的,請建議替代過程並行dbutils命令。

10個回答10

ajaypanday6781
尊敬的貢獻者二世

我想現在Pyspark API不支持它。

Nandini
新的貢獻者二世

謝謝!有任何其他的並行處理嗎?

pulkitm
新的貢獻者三世

@Nandini拉賈是你能找到一個解決方案嗎?我們試圖從s3 ADLS Gen2和批量複製文件dbutils單線程是一種痛苦。我甚至嚐試了scala代碼為你工作,但我得到以下錯誤:

引起的:KeyProviderException:未能初始化配置

引起的:InvalidConfigurationValueException: fs.azure.account.key檢測到無效的配置值

這可能是因為這個設計不可以在遺囑執行人的水平。

任何解決方案你可以找到嗎?

KVNARK
尊敬的貢獻者二世

也許我們可以試試FileUtil.copy

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map