簡體   English   中英

發行Hive AvroSerDe tblProperties最大長度

[英]Issue Hive AvroSerDe tblProperties max length

我嘗試用AvroSerDe創建一個表。 我已經嘗試過以下命令來創建表:

CREATE EXTERNAL TABLE gaSession
 ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
 STORED AS
 INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
 OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
 TBLPROPERTIES ('avro.schema.url'='hdfs://<<url>>:<<port>>/<<path>>/<<file>>.avsc');

創建似乎可行,但生成了下表:

hive> show create table gaSession;
OK
CREATE EXTERNAL TABLE `gaSession`(
  `error_error_error_error_error_error_error` string COMMENT 'from deserializer',
  `cannot_determine_schema` string COMMENT 'from deserializer',
  `check` string COMMENT 'from deserializer',
  `schema` string COMMENT 'from deserializer',
  `url` string COMMENT 'from deserializer',
  `and` string COMMENT 'from deserializer',
  `literal` string COMMENT 'from deserializer')
ROW FORMAT SERDE
  'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
...

之后,我復制了定義並將“ avro.schema.url”替換為“ avro.schema.literal”,但該表仍然無法正常工作。

但是,當我刪除一些(隨機)字段時,它可以工作(例如,按照以下定義)。

CREATE TABLE gaSession
     ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.avro.AvroSerDe'
     STORED AS
     INPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
     OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
     TBLPROPERTIES ('avro.schema.literal'='{"type": "record",
"name": "root",
"fields": [
    {
        "name": "visitorId",
        "type": [
            "long",
            "null"
        ]
    },
    {
        "name": "visitNumber",
        "type": [
            "long",
            "null"
        ]
    },
    {
        "name": "visitId",
        "type": [
            "long",
            "null"
        ]
    },
    {
        "name": "visitStartTime",
        "type": [
            "long",
            "null"
        ]
    },
    {
        "name": "date",
        "type": [
            "string",
            "null"
        ]
    },
    {
        "name": "totals",
        "type": [
            {
                "type": "record",
                "name": "totals",
                "fields": [
                    {
                        "name": "visits",
                        "type": [
                            "long",
                            "null"
                        ]
                    },
                    {
                        "name": "hits",
                        "type": [
                            "long",
                            "null"
                        ]
                    },
                    {
                        "name": "pageviews",
                        "type": [
                            "long",
                            "null"
                        ]
                    },
                    {
                        "name": "timeOnSite",
                        "type": [
                            "long",
                            "null"
                        ]
                    },
                    {
                        "name": "bounces",
                        "type": [
                            "long",
                            "null"
                        ]
                    },
                    {
                        "name": "transactions",
                        "type": [
                            "long",
                            "null"
                        ]
                    },
                    {
                        "name": "transactionRevenue",
                        "type": [
                            "long",
                            "null"
                        ]
                    },
                    {
                        "name": "newVisits",
                        "type": [
                            "long",
                            "null"
                        ]
                    },
                    {
                        "name": "screenviews",
                        "type": [
                            "long",
                            "null"
                        ]
                    },
                    {
                        "name": "uniqueScreenviews",
                        "type": [
                            "long",
                            "null"
                        ]
                    },
                    {
                        "name": "timeOnScreen",
                        "type": [
                            "long",
                            "null"
                        ]
                    },
                    {
                        "name": "totalTransactionRevenue",
                        "type": [
                            "long",
                            "null"
                        ]
                    }
                ]
            },
            "null"
        ]
    }
]
 }');

TBLPROPERTIES / avro.schema.literal是否具有最大長度或其他限制?

蜂巢版本:0.14.0

Hortonworks支持團隊確認,tblproperties的字符數限制為4000個。 因此,通過刪除空格,您可以定義一個更大的表。 否則,您必須使用“ avro.schema.url”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM