web-dev-qa-db-ja.com

Azure Databricks-管理テーブルを作成できません関連する場所は既に存在します

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;

どうすれば修正できますか?

8
BuahahaXD

同じ問題 を持つ他のいくつかのようです。

一時的な回避策は使用することです

dbutils.fs.rm("dbfs:/user/Hive/warehouse/SomeData/", true)

テーブルを再作成する前に削除します。

7
char

同じ問題があり、使用しています

create table if not exists USING delta

提案されたファイルを最初に削除すると、作成されますが、問題が繰り返されるのは2回目です。作成テーブルが存在しないようで、テーブルを認識せず、とにかく作成しようとします。

毎回テーブルを削除したくないので、実際にはMERGEを使用してテーブルを保持しようとしています。

0
OHabushi

より文脈自由な答えを得るには、これをノートブックで実行します。

dbutils.fs.rm("dbfs:/user/Hive/warehouse/SomeData", recurse=True)

Databricksの ドキュメント によると、これはPythonまたはScalaノートブックで機能しますが、魔法のコマンド%pythonを使用する必要がありますRまたはSQLノートブックを使用している場合は、セルの先頭。

0
David Maddox