OpenCSVSerde换行符覆盖引号Char [英] OpenCSVSerde escapeChar overriding quoteChar

查看:0
本文介绍了OpenCSVSerde换行符覆盖引号Char的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有许多CSV要导入到配置单元中,并且我发现,即使新行位于带引号的字段中,也会触发它,这就是我的quteChar。有什么直截了当的方法来解决这个难题吗?

Line1field1 text,Line1field2 text,"Line1field3 text 
 with new line"

Line2field1 text,"Line2field2 text, with comma"

推荐答案

无法在配置单元中使用文本格式修复它。

OpenCSVSerDe不处理嵌入的换行符,请参阅documentation

CSV、JSON等文本格式不允许嵌入换行符,而使用RegexSerDe、OpenCSVSerDe、JSONSerDe、LasySimpleSerDe等文本格式的SerDe不处理嵌入换行符。

您可以以二进制格式存储嵌入的换行符:ORC、PARQUET、AVRO,但在不同的查询工具中,换行符将导致换行和移位,尽管如果在查询中以二进制格式存储,您可以用其他格式替换换行符。对于文本格式,这是不可能的,因为记录读取器读取行,而serde接收单独的行。

解决方案是在加载到配置单元之前转换CSV,并用其他内容替换换行符,或者尽可能使用二进制格式。

这篇关于OpenCSVSerde换行符覆盖引号Char的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆