我是AVRO的新手,我正尝试将AVRO格式的数据从SQL Server导入HDFS。
错误:org.kitesdk.data.DatasetOperationException:无法附加{“ id”:“ D22C2475”,“ create_date”:“ 2020-08-22 14:34:06.0”,“ modified_date”:“ 2020-08 -22 14:34:06.0“}到ParquetAppender {path = job_1597813536070 / mr / attempt_1597813536070_m_000000_0 / .d55262cf-e49b-4378-addc-0f85698efb47.parquet.tmp”> hdfs://nameservice1/tmp/schema/.temp/job_1597813536070 /mr/attempt_1597813536070_m_000000_0/.d55262cf-e49b-4378-addc-0f85698efb47.parquet.tmp,schema = {“ type”:“ record”,“ name”:“ AutoGeneratedSchema”,“ doc”:“对QueryResult进行批量导入”, “ fields”:[{“ name”:“ id”,“ type”:[“ null”,“ string”],“ default”:null,“ columnName”:“ id”,“ sqlType”:“ 1”} ,{“ name”:“ create_date”,“ type”:[“ null”,“ long”],“ default”:null,“ columnName”:“ create_date”,“ sqlType”:“ 93”},{“ name “:” modified_date“,” type“:[” null“,” long“],” default“:null,” columnName“:” modified_date“,” sqlType“:” 93“}],” tableName“:” QueryResult “},fileSystem = DFS [DFSClient [clientName = DFSClient_attempt_1597813536070_m_000000_0_960843231_1,ugi = username(auth:SIMPLE)]],avroParquet Writer=parquet.avro.AvroParquetWriter@7b122839} 原因:java.lang.ClassCastException:无法将java.lang.String强制转换为java.lang.Number
表-
创建表“ticket”
(
id
字符串,
create_date
字符串,
modified_date
字符串)
行格式序列
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
存储为INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
输出格式
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
TBLPROPERTIES(
'COLUMN_STATS_ACCURATE'='true',
'avro.schema.url'='hdfs://nameservice1/user/hive/warehouse/schema.db/ticket/.metadata/schemas/1.avsc',
'kite.compression.type'='snappy');
AVRO文件元数据-hdfs://nameservice1/user/hive/warehouse/schema.db/ticket/.metadata/schemas/1.avsc' { “ type”:“记录”, “ name”:“ AutoGeneratedSchema”, “ doc”:“ QueryResult的批量导入”, “字段”:[{ “ name”:“ id”, “ type”:[“ null”,“ string”], “默认”:null, “ columnName”:“ id”, “ sqlType”:“ 1” },{ “ name”:“ create_date”, “ type”:[“ null”,“ string”], “默认”:null, “ columnName”:“ create_date”, “ sqlType”:“ 93” },{ “ name”:“ modified_date”, “ type”:[“ null”,“ string”], “默认”:null, “ columnName”:“ modified_date”, “ sqlType”:“ 93” }], “ tableName”:“ QueryResult” }
答案 0 :(得分:0)
我解决了这个问题。我的AVRO元数据文件出现问题。我重新创建了它,并使用以下命令将其添加到Hive表中。
更改表table_name设置serdeproperties('avro.schema.url'='hdfs://user/hive/warehouse/schema.db/table_name/1.avsc');