Share Your AWS re:Post Experience - Quick 3 Question Survey
Help us improve AWS re:Post! We're interested in understanding how you use re:Post and its impact on your AWS journey. Please take a moment to complete our brief 3-question survey.
Wie behebe ich die Ausnahme „HIVE_CURSOR_ERROR“, wenn ich eine Tabelle in Amazon Athena abfrage?
Wenn ich Abfragen in meiner Amazon Athena-Tabelle ausführe, erhalte ich eine „HIVE_CURSOR_ERROR“ -Ausnahme.
Behebung
Diese Ausnahme kann unter einer der folgenden Bedingungen auftreten:
- Die Datenobjekte an Ihrem Tabellenspeicherort sind beschädigt, nicht gültig oder falsch komprimiert.
- Die Datensätze in den Tabellendaten sind nicht gültig (Beispiel: ein falsch formatierter JSON-Datensatz).
Häufige HIVE_CURSOR_ERROR-Ausnahmen
Möglicherweise tritt eine der folgenden Ausnahmen auf, wenn ein Problem mit diesen Objekten in Ihrem Amazon Simple Storage Service (Amazon S3)-Tabellenspeicherort auftritt:
- HIVE_CURSOR_ERROR: falsche Header-Prüfung
- HIVE\ _CURSOR\ _ERROR: Ungültiger Blocktyp
- HIVE\ _CURSOR\ _ERROR: falsche Datenprüfung
- HIVE\ _CURSOR\ _FEHLER: Unerwartetes Ende des Eingabestreams
- HIVE\ _CURSOR\ _ERROR: Ungültige gespeicherte Blocklängen
- HIVE_CURSOR_ERROR: Ungültiger Entfernungscode
Wenn Sie kürzlich neue Objekte zu Ihrem Amazon Simple Storage Service (Amazon S3)-Tabellenspeicherort hinzugefügt haben, stellen Sie sicher, dass diese Objekte gültig und nicht beschädigt sind. Laden Sie die Objekte herunter und überprüfen Sie sie dann mit Ihrem bevorzugten Tool. Dekomprimieren Sie beispielsweise die mit GZIP komprimierten Objekte, um zu überprüfen, ob die Komprimierung gültig ist.
Wenn Ihre Tabelle partitioniert ist, überprüfen Sie, ob Sie einzelne Partitionen abfragen können. Wenn die Tabelle neue Partitionen enthält, enthalten sie möglicherweise Objekte, die nicht gültig sind.
Spezifische HIVE_CURSOR_ERROR-Ausnahmen
HIVE_CURSOR_ERROR: Row ist kein gültiges JSON-Objekt
Dieser Fehler wird angezeigt, wenn eine Zeile in der Tabelle kein gültiger JSON-Datensatz ist.
Gehen Sie wie folgt vor, um dieses Problem zu beheben:
- Erstellen Sie die Tabelle neu, indem Sie die Eigenschaft 'ignore.malformed.json' = 'true' hinzufügen.
- Fragen Sie die neue Tabelle ab, um die Dateien mit fehlerhaften Datensätzen zu identifizieren, indem Sie einen Befehl ausführen, der dem folgenden ähnelt:
SELECT "$path" FROM example_table WHERE example_column = NULL
Weitere Informationen finden Sie unter Warum erhalte ich Fehler, wenn ich versuche, JSON-Daten in Amazon Athena zu lesen? und OpenX JSON SerDe.
HIVE_CURSOR_ERROR: Beschädigter unkomprimierter Block
Dieser Fehler tritt auf, wenn Sie das LZO-Format verwenden, um Objekte an Ihrem Tabellenspeicherort zu komprimieren.
Um diesen Fehler bei LZO-komprimierten Daten zu vermeiden, erstellen Sie die Tabelle mit dem INPUTFORMAT „com.hadoop.mapred.deprecatedLzoTextInputFormat“ neu. Zum Beispiel:
CREATE EXTERNAL TABLE example_table ( example_column_1 STRING, example_column_2 STRING ) STORED AS INPUTFORMAT 'com.hadoop.mapred.DeprecatedLzoTextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 's3://example_bucket/example_prefix/'
Sie können diesen Fehler auch beheben, indem Sie ein anderes Komprimierungsformat verwenden.
HIVE_CURSOR_ERROR: Der Wert bei 0 in Block 0 in der Datei kann nicht gelesen werden
Dieser Fehler tritt auf, wenn Sie Parquet-Objekte haben, die im S3-Pfad nicht gültig sind. Prüfen Sie, ob Ihre Parquet-Objekte DECIMAL-Datentypen enthalten. Wenn Sie Spark verwendet haben, um Parquet-Objekte zu schreiben, die DECIMAL-Datentypen enthalten, sind diese möglicherweise nicht mit Hive kompatibel. Um diesen Zustand zu überprüfen, versuchen Sie, die Parquet-Objekte aus einem Spark-Job zu lesen.
Wenn Sie die Parquet-Objekte mit dem Spark-Job lesen können, schreiben Sie die Parquet-Objekte im Legacy-Modus in Spark mit der folgenden Konfiguration neu:
spark.sql.parquet.writeLegacyFormat = true
Informationen zu den Spark-Konfigurationsoptionen für Parquet finden Sie unter Konfiguration auf der Spark SQL Website.
HIVE_CURSOR_ERROR: org.apache.hadoop.io.ArrayWritable kann nicht in org.apache.hadoop.io.Text umgewandelt werden
Dieser Fehler tritt auf, wenn Sie bei der Tabellendefinition ein falsches SerDe verwendet haben. Beispielsweise könnte die Tabelle ein JSON SerDe verwenden und die Quelldaten enthalten Parquet-Objekte.
Um diesen Fehler zu beheben, überprüfen Sie die Quelldaten und stellen Sie sicher, dass das richtige SerDe verwendet wird. Weitere Informationen finden Sie unter Unterstützte SerDes und Datenformate.
HIVE_CURSOR_ERROR-Fehler bei Dateien, die aus AWS Config gelesen wurden
HIVE_CURSOR_ERROR: java.io.IOException: Beginn des Objekts erwartet
Dieser Fehler tritt auf, wenn das Daten-JsonSerDe das Startobjekt des JSON-Datensatzes nicht abrufen kann. Entweder stimmen die Daten nicht mit dem Schema überein oder die Dateien sind beschädigt, wenn Sie eine Abfrage ausführen.
Um diesen Fehler zu beheben, verwenden Sie ein anderes SerDe anstelle des standardmäßigen org.apache.hive.hcatalog.data.JsonSerDe, z. B. org.openx.data.jsonserde.JsonSerDe. Setzen Sie dann die Tabelleneigenschaft auf 'ignore.malformed.json' = 'true'.
Weitere Informationen finden Sie unter JSON-SerDe-Bibliotheken.
HIVE_CURSOR_ERROR: java.io.IOException: Starttoken wurde nicht an der erwarteten Stelle gefunden.
Dieser Fehler tritt auf, wenn der Speicherort der Athena-Tabelle andere als die von AWS Config bereitgestellten Dateien enthält. Zum Beispiel, wenn eine CSV-Ausgabe einer Athena-Abfrage auf denselben Speicherort wie die AWS-Konfigurationsdateien im JSON-Format gesetzt ist.
Um diesen Fehler zu beheben, verschieben oder löschen Sie Dateien, die nicht von AWS Config generiert wurden. Für Athena-Abfrageergebnisse werden die Ausgabedateien im folgenden Pfadmuster gespeichert:
QueryResultsLocationInS3/[QueryName|Unsaved/yyyy/mm/dd/]
HIVE_CURSOR_ERROR: Row is not a valid JSON Object - JSONException: Duplicate key
Dieser Fehler tritt auf, wenn AWS-Config-Ressourcen mehrere Tags mit demselben Namen haben oder einige in Großbuchstaben und andere in Kleinbuchstaben geschrieben sind.
Informationen zum Beheben dieses Fehlers finden Sie unter Wie behebe ich „HIVE_CURSOR_ERROR“: Row is not a valid JSON Object - JSONException: Duplicate Key“ beim Lesen von Dateien aus AWS Config in Athena?
Ähnliche Informationen

Relevanter Inhalt
- AWS OFFICIALAktualisiert vor 4 Jahren
- AWS OFFICIALAktualisiert vor 2 Jahren
- AWS OFFICIALAktualisiert vor 4 Jahren
- AWS OFFICIALAktualisiert vor 5 Monaten