3

我使用 presto 在 hive 中创建了 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并且这个属性只接受位置。

在这方面的任何帮助。

4

0 回答 0