我已經重命名一個表,但是試圖寫信給它(或刪除)我得到以下錯誤:
io。FileNotFoundException:沒有這樣的文件或目錄:蜂巢s3a: / /…/ /倉庫/ testing.db / renamed_table_name json / _delta_log / 00000000000000000002.”
我的版本是10.4 LTS集群
下麵的python片段可以用來重建問題:
' ' '
DB_NAME = '測試'
def重命名(old_table_name new_table_name):
spark.conf.set (“spark.databricks.delta.alterTable.rename.enabledOnAWS”,“真正的”)
火花。sql ALTER TABLE {DB_NAME} (f”。{old_table_name}重命名{DB_NAME} {new_table_name}”)。
def覆蓋(table_name source_df):
(source_df.write
.mode(“覆蓋”)
.format(“δ”)
.saveAsTable (f“{DB_NAME} {table_name}”)。
)
def get_df ():
data = (
(“Name1”、“Surname1 ", 12345),
(“Name2”、“Surname2 ", 67890),
]
返回spark.createDataFrame(數據)
sparkDf = get_df ()
#創建表
覆蓋(table_name, sparkDf)
#重命名表
重命名(“table_name”、“renamed_table_name”)
#試著寫重命名表(或刪除)。這裏發生了故障
覆蓋(renamed_table_name, sparkDf)
' ' '
任何幫助將不勝感激
我試著你的代碼在11.1(包括Apache火花3.3.0,Scala 2.12),效果非常好。
然而它將工作完美隻有第一次因為如果你嚐試重新運行相同的代碼,它將錯誤並指出renamed_table_name存在。
P。學生:請使用代碼片段(< / >按鈕)代碼包含在您的問題