Wie kann ich den Fehler „FAILED: SemanticException table is not partitioned but partition spec exists" in Athena beheben?

Lesedauer: 2 Minute
0

Wenn ich ALTER TABLE ADD PARTITION in Amazon Athena ausführe, erhalte ich folgende Fehlermeldung: "FAILED: SemanticException table is not partitioned but partition spec exists" (FEHLGESCHLAGEN: Die Tabelle SemanticException ist nicht partitioniert, aber die Partitionsspezifikation existiert.)

Lösung

Dieser Fehler tritt auf, wenn Sie in der Anweisung CREATE TABLE keine Partitionen definiert haben. Gehen Sie wie folgt vor, um diesen Fehler zu beheben:

  • Erstellen Sie die Tabelle erneut und verwenden Sie PARTITIONED BY, um den Partitionsschlüssel zu definieren.
  • Bearbeiten Sie das Tabellenschema.

Erstellen Sie die Tabelle neu

Erstellen Sie die Tabelle erneut und verwenden Sie PARTITIONED BY, um den Partitionsschlüssel zu definieren. Ein Beispiel finden Sie unter Tabelle erstellen. Nachdem Sie die Partition definiert haben, können Sie ALTER TABLE ADD PARTITION verwenden, um weitere Partitionen hinzuzufügen.

Wenn Sie zum Beispiel die folgende Datendefinitionssprache (DDL) verwenden, um die Tabelle mit drei Partitionen für Jahr, Monat und Tag zu erstellen:

CREATE EXTERNAL TABLE test (
requestBeginTime string,
adId string,
...)
PARTITIONED BY (
year string,
month string,
day string
)
ROW FORMAT serde 'org.apache.hive.hcatalog.data.JsonSerDe'
LOCATION 's3://.../' ;

Fügen Sie dann die Partitionen hinzu, die den folgenden ähneln:

ALTER TABLE impressions ADD
PARTITION (year = '2016', month = '05', day='04') LOCATION 's3://mystorage/path/to/data\_14\_May\_2016/';

Bearbeiten Sie das Tabellenschema

Gehen Sie wie folgt vor, um das Tabellenschema in AWS Glue zu bearbeiten:

  1. Öffnen Sie die AWS-Glue-Konsole.
  2. Wählen Sie den Tabellennamen in der Liste und anschließend Edit schema (Schema bearbeiten) aus.
  3. Wählen Sie Add column (Spalte hinzufügen) aus.
  4. Geben Sie den Namen, den Typ und die Nummer der Spalte ein. Aktivieren Sie anschließend das Feld Partition key (Partitionsschlüssel).
  5. Wählen Sie Add (Hinzufügen) aus.

Weitere Informationen finden Sie unter Tabellendetails anzeigen und bearbeiten.

AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr