1

我有一个使用 matillion 在红移中创建光谱表的场景。我的 CSV 文件数据是这样的:-

column1,column2,column3
abc,"qwety,pqr",xyz

但在频谱表中,我将数据视为

column1 column2 column3
abc qwerty pqr

Matillion 没有将报价值作为一个值。您能否建议如何使用 matillion 的 EXTERNAL TABLE 组件来实现这一点。

4

1 回答 1

0

基本上,您想为您的 CSV 数据指定一个报价参数

Redshift 有 2 种指定外部表的方法(参见Redshift Docs 以供参考):

  • 使用默认的内置SerDes和属性,例如ROW FORMAT DELIMITEDFIELDS TERMINATED BY
  • 明确指定一个SerDeROW FORMAT SERDEWITH SERDEPROPERTIES

我认为不可能使用内置的SerDes指定报价参数。

可以使用org.apache.hadoop.hive.serde2.OpenCSVSerde在此处查看有关其属性的详细信息)来指定它们,但请注意它存在已知问题,如此 SO question中所述。

现在为 Metillion

我从未使用过 Matillion,但查看他们的Redshift External Table 文档页面,似乎只能指定 theFORMAT和 the FIELD TERMINATOR,但不能指定SerDe及其属性,因此无法为外部表指定报价参数- 除非有一些未记录的方法来指定自定义SerDe

个人注意:我们在摄取存储为 CSV 的数据时遇到了很多问题,我们基本上尽量避免。CSV 没有标准,每个工具都实现了自己的支持版本,很难说服所有工具以相同的方式查看数据。

于 2020-06-15T09:59:06.663 回答