0

我正在尝试在现有的 avro 文件上创建一个外部配置单元表。下面是查询。

CREATE EXTERNAL TABLE sample
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'
location '/user/sshusr/sample/'
TBLPROPERTIES ('avro.schema.url'='/user/sshusr/avsc_files/sample.avsc');

表已创建,我可以使用简单的 SELECT 查询查看数据。但是,avro 中很少有列可以有换行符。例如,评论列数据可以有段落(带有换行符)。因此,数据没有正确加载到表中(无论 avro serde 在列中遇到换行符的任何位置,它都将其视为下一条记录/行)。我在互联网上找不到任何例子。是否有任何解决方法来处理这种情况?

提前致谢。

4

1 回答 1

0

它已在 Hive 版本 2.0.0 中修复。在此之前,唯一的解决方法是在 select 语句期间将换行符替换为其他内容。

于 2017-11-09T15:44:32.647 回答