プレストを使用して、ハイブに Avro テーブルを作成しました。以下のクエリを使用して
CREATE TABLE hive.psa_sbox.avro_testing (
id bigint
)
WITH (
format = 'AVRO',
external_location = 'my/datalake/data/folder/avro_data',
avro_schema_url = 'my/datalake/schema/folder/hello.avsc'
)
presto テーブルが正常に作成されていることがわかります。しかし、テーブルの内容を照会/表示しようとすると、以下のエラーが表示されます:
[2021-11-03 12:56:07] Error executing query
[2021-11-03 12:56:07] com.facebook.presto.jdbc.internal.jackson.databind.exc.MismatchedInputException: Cannot construct instance of `com.facebook.presto.jdbc.internal.common.type.TypeSignature` (although at least one Creator exists): cannot deserialize from Object value (no delegate- or property-based Creator)
[2021-11-03 12:56:07] at [Source: UNKNOWN; line: -1, column: -1] (through reference chain: com.facebook.presto.jdbc.internal.client.QueryResults["columns"]->java.util.ArrayList[0]->com.facebook.presto.jdbc.internal.client.Column["typeSignature"]->com.facebook.presto.jdbc.internal.client.ClientTypeSignature["arguments"]->java.util.ArrayList[0]->com.facebook.presto.jdbc.internal.common.type.NamedTypeSignature["typeSignature"])
ユーザーが avro スキーマを外部ファイルとして指定してテーブルを作成できないと述べたブログを見つけましたが、テーブル定義で avro スキーマを指定すると、ブログ リンクが機能します。しかし、私は avro.schema.literal を使用できないことがわかりました。この git repo hiveテーブルのプロパティに従って利用できる唯一のオプションはavro_schema_urlであり、このプロパティは場所のみを受け入れます。
この点で何か助けてください。