Azure Databricksに次の問題があります。 DataFrameをマネージテーブルとして保存しようとすると、
SomeData_df.write.mode('overwrite').saveAsTable("SomeData")
次のエラーが発生します。
"管理テーブルを作成できません( '
SomeData
')。関連付けられた場所( 'dbfs:/ user/Hive/warehouse/somedata')はすでに存在します。;"
以前は%fs rmコマンドを実行してその場所を削除することでこの問題を修正していましたが、別のユーザーによって管理されているクラスターを使用しているため、その場所でrmを実行できなくなりました。
今のところ、考えられる唯一の修正は、別のテーブル名を使用することです。
さらに特異なのは、テーブルが存在しないことです。私が走ると:
%sql
SELECT * FROM SomeData
エラーが発生します:
SQLステートメントのエラー:AnalysisException:テーブルまたはビューが見つかりません:SomeData;
どうすれば修正できますか?
同じ問題 を持つ他のいくつかのようです。
一時的な回避策は使用することです
dbutils.fs.rm("dbfs:/user/Hive/warehouse/SomeData/", true)
テーブルを再作成する前に削除します。
同じ問題があり、使用しています
create table if not exists USING delta
提案されたファイルを最初に削除すると、作成されますが、問題が繰り返されるのは2回目です。作成テーブルが存在しないようで、テーブルを認識せず、とにかく作成しようとします。
毎回テーブルを削除したくないので、実際にはMERGEを使用してテーブルを保持しようとしています。
より文脈自由な答えを得るには、これをノートブックで実行します。
dbutils.fs.rm("dbfs:/user/Hive/warehouse/SomeData", recurse=True)
Databricksの ドキュメント によると、これはPythonまたはScalaノートブックで機能しますが、魔法のコマンド%python
を使用する必要がありますRまたはSQLノートブックを使用している場合は、セルの先頭。