大家好,
當我運行4.2課的設置為外部資源提供選項,我得到以下錯誤:
org.apache.spark。SparkException:工作階段失敗而終止:任務0階段8491.0失敗了4次,最近的失敗:在舞台上失去了任務0.3 8491.0 (TID 81305、10.33.185.79執行人23):java.sql。SQLException異常(SQLITE_ERROR): SQL錯誤或丟失數據庫(沒有這樣的表:用戶)
Py4JJavaError回溯(去年)最近調用<命令- 176215 > <模塊> 2 DA.init () 3 install_eltwss_datasets(重新安裝= False)——> 4 load_eltwss_external_tables DA.conclude_setup 5()() <命令- 180667 > load_eltwss_external_tables (30) .option (“url”, f " jdbc: sqlite: / {DA.username} _ecommerce.db”) 31 .option(“數據表”,“用戶”)# sqllight - - - > 32中的表名.mode(“覆蓋”)33 .save() 34) /磚/火花/ python / pyspark / sql /讀寫。py保存(自我、路徑、格式、模式、partitionBy、* *選項)823年self.format(格式)824如果路徑是:- > 825 self._jwrite.save(826年)其他:827 self._jwrite.save(路徑)/磚/火花/ python / lib / py4j-0.10.9-src.zip / py4j / java_gateway。py __call__(自我,* args) 1303回答= self.gateway_client.send_command(命令)1304 return_value = get_return_value(- > 1305回答,自我。gateway_client,自我。target_id self.name) 1306 1307 temp_arg temp_args: /磚/火花/ python / pyspark / sql /跑龍套。py在德科(*,* *千瓦)125年def德科(*,* *千瓦):126試:- - > 127返回f(*, * *千瓦)128 py4j.protocol除外。Py4JJavaError e: 129轉換= convert_exception (e.java_exception) /磚/火花/ python / lib / py4j-0.10.9-src.zip / py4j /協議。py get_return_value(答案,gateway_client target_id,名字)326年籌集Py4JJavaError(327”時發生一個錯誤調用{0}{1}{2}。\ n”。- - > 328格式(target_id,“。”,name), value) 329 else: 330 raise Py4JError(
我想這個問題可能在於以下函數我相信被稱為通過設置命令。
def copy_source_dataset (src_path dst_path、格式、名稱):導入時間開始= int (time.time())打印(f“創建數據集{名稱}”=“…”)結束dbutils.fs。cp (src_path dst_path,真的)總額= spark.read.format(格式).load (dst_path) .count()打印(f”({int (time.time())實體法}秒/{總:}記錄)”)def load_eltwss_external_tables (): {DA.paths copy_source_dataset (f”。數據集}/生/ sales-csv " f " {DA.paths。working_dir} / sales-csv”、“csv”、“sales-csv”)進口時間開始= int (time.time())打印(f“創建用戶表”,結束=“…”)#重構- dbutils.fs.cp lesson-specific副本(f”{DA.paths。數據集}/生/ users-historical " f " {DA.paths。working_dir} / users-historical”,真正的)#https://spark.apache.org/docs/latest/sql-data-sources-jdbc.html(火花。讀.format(“鋪”).load (f“{DA.paths.working_dir} / users-historical”) .repartition (1) .write .format .option (“org.apache.spark.sql.jdbc”) (“url”, f " jdbc: sqlite: / {DA.username} _ecommerce.db”) .option(“數據表”,“用戶”)#的表名sqllight .mode(“覆蓋”).save()) =總spark.read.parquet (f“{DA.paths.working_dir} / users-historical”) .count()打印(f”({int (time.time())實體法}秒/{總:}記錄)”)
我可以看到,這是提高和看似解決在這裏,但解決的辦法不是共享和更新的海報與同樣的問題沒有得到答複。
我提出了一個支持票但我沒有得到響應。
將感謝任何指導。