私は使っている
drop table <table_name>
同じスキーマと名前でテーブルを再作成すると、古いデータが返されます。データを完全に削除するには、hdfs ファイル システムからテーブル ディレクトリを削除する必要がありますか?
私は使っている
drop table <table_name>
同じスキーマと名前でテーブルを再作成すると、古いデータが返されます。データを完全に削除するには、hdfs ファイル システムからテーブル ディレクトリを削除する必要がありますか?
pensz に同意しますが、わずかな変更ですが、テーブルをドロップする必要はありません。外部 hdfs ファイルを必要な新しいファイルに置き換えるだけで (置き換えられたファイルの構造は同じである必要があります)、前のテーブルの select * を実行すると、古いデータではなく新しいデータが含まれることに気付くでしょう。 1。
外部テーブルは基本的に、データのスキーマとファイルの場所のみを示します。多くのファイルを同じ場所に追加でき、テーブルにはこれらのファイルに関連するすべてのデータが自動的に含まれます。同様に、任意のデータを置き換えることができ、自動的にテーブルにこれが反映されます。
より多くの hdfs スペースが必要な場合を除いて、hdfs のディレクトリを削除する必要はありません。
新しいデータを置き換えたい場合は、hdfs のファイルを置き換えるだけです。
テーブル名を他の用途に使用する場合は、テーブルを削除し、hdfs のディレクトリを削除します。
実際、これはデータを失うことなくテーブルのスキーマを変更できる (たとえば、フィールド名を変更したり、2 つのフィールドを 1 つのフィールドに連結したりする) ことができる非常に便利な機能だと思います。