磚的筆記本,我需要運行文本文件(stdin、stdout)通過從外部函數庫。我用sparkContext.AddFiles ({external_library_name})添加外部庫,以便它可以所有的執行人。
當我運行sparkFiles.get ({external_library_name})它返回執行程序路徑到外部庫。當我使用sparkFiles.get ({external_library_name})位置作為抽樣的一部分。管與連接參數的電話,我得到一個FileNotFound例外。
spark.sparkContext.addFile (“/ dbfs / FileStore / Custom_Executable”) files_rdd = spark.sparkContext.parallelize (files_list)打印(f 'spark文件路徑:{SparkFiles.get (Custom_Executable)}”) path_with_params = SparkFiles.get (“Custom_Executable”) +“函數名——從固化company2 company1————與產出——“print (f 'path參數:{path_with_params}”) pipe_rdd = files_rdd。管(path_with_params env = {SOME_ENV_VAR: env_var_val})打印(pipe_tokenised_rdd.collect ())
這的輸出
火花文件路徑:/ local_disk0 /火花c69e5328 - 9 - da3 4 c76 - 85 - b8 - a977e470909d / userFiles e8a37109 - 046 c - 4909 - 8 dd2 - 95 bde5c9f3e3 / Custom_Executable exe路徑:/ local_disk0 /火花c69e5328 - 9 - da3 4 c76 - 85 - b8 - a977e470909d / userFiles-e8a37109 - 046 c - 4909 - 8 dd2 - 95 bde5c9f3e3 / Custom_Executable函數名——company1——從company2 org.apache.spark固化-與產出輸出。SparkException:工作階段失敗而終止:任務2階段0.0失敗了4次,最近的失敗:在舞台上失去了任務2.3 0.0 (TID 12)(10.113.4.168執行人0):org.apache.spark.api.python。PythonException: & # 39; FileNotFoundError: [Errno 2]沒有這樣的文件或目錄:& # 39;/ local_disk0 /火花c69e5328 - 9 - da3 4 c76 - 85 - b8 - a977e470909d / userfiles e8a37109 - 046 c - 4909 - 8 dd2 - 95 bde5c9f3e3 / Custom_Executable& # 39; & # 39;。完整回溯如下:
為什麼管叫找不到SparkFiles.get返回的位置?