如何解决Sqoop导入失败,同时将AVRO数据从SQL Server导入HDFS
我是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” }
解决方法
我解决了这个问题。我的AVRO元数据文件出现问题。我重新创建了它,并使用以下命令将其添加到Hive表中。
更改表table_name设置serdeproperties('avro.schema.url'='hdfs://user/hive/warehouse/schema.db/table_name/1.avsc');
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。