【问题标题】:Creating spectrum table in matillion for csv file with comma inside quotes用逗号在引号内为csv文件创建质谱表
【发布时间】:2020-06-11 18:18:43
【问题描述】:

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

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

但在频谱表中我看到了数据 作为

column1 column2 column3
abc qwerty pqr

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

【问题讨论】:

    标签: amazon-redshift amazon-redshift-spectrum matillion


    【解决方案1】:

    基本上,您希望为您的 CSV 数据指定一个引用参数

    Redshift 有 2 种指定外部表的方式(参见 Redshift Docs for reference):

    • 使用默认的内置SerDesROW FORMAT DELIMITEDFIELDS TERMINATED BY 等属性
    • ROW FORMAT SERDEWITH SERDEPROPERTIES 显式指定一个SerDe

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

    可以使用org.apache.hadoop.hive.serde2.OpenCSVSerde 指定它们(look here 了解其属性的详细信息),但请注意它存在已知问题,如this SO question 中所述。

    现在是 Metillion

    我从未使用过 Matillion,但查看他们的 Redshift External Table documentation page,似乎只能指定 FORMATFIELD TERMINATOR,但不能指定 SerDe 及其属性,因此不可能为外部表指定 引用参数 - 除非有一些未记录的方法来指定自定义 SerDe

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-02-09
      • 2017-09-28
      • 1970-01-01
      • 2018-07-27
      • 2017-08-08
      • 1970-01-01
      • 2016-10-07
      相关资源
      最近更新 更多