Azure 数据仓库 PolyBase 文件格式
Azure Data Warehouse PolyBase File format
我们有一个如下所示的文件:
Col1,Col2,Col3,Col4,Col5
"Hello,",I,",am",some,data!
因此具有以下'properties':
- 逗号分隔
- 双引号列分隔符
- 某些列中有逗号
现在,我不确定是否真的可以使用 PolyBase 摄取它,但想知道是否有办法?
我们目前看到的错误是“Could not find a delimiter after quote
”..我猜这是因为在双引号之后它击中了预期的分隔符..
为了完整起见,这是我们当前的文件格式:
CREATE EXTERNAL FILE FORMAT Comma
WITH (FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS(
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
)
)
改为以十六进制指定。
STRING_DELIMITER = '0x22'
(根据https://msdn.microsoft.com/en-au/library/dn935026.aspx结尾有人描述的问题)
通过添加一个中间步骤将文件从 csv 格式转换为 ORC 格式,最终解决了这个问题。
它有点笨拙(因为它留下了一堆乱七八糟的副本),但 PolyBase 确实可以使用文件格式:
CREATE EXTERNAL FILE FORMAT Orc
WITH (FORMAT_TYPE = ORC)
我们有一个如下所示的文件:
Col1,Col2,Col3,Col4,Col5
"Hello,",I,",am",some,data!
因此具有以下'properties':
- 逗号分隔
- 双引号列分隔符
- 某些列中有逗号
现在,我不确定是否真的可以使用 PolyBase 摄取它,但想知道是否有办法?
我们目前看到的错误是“Could not find a delimiter after quote
”..我猜这是因为在双引号之后它击中了预期的分隔符..
为了完整起见,这是我们当前的文件格式:
CREATE EXTERNAL FILE FORMAT Comma
WITH (FORMAT_TYPE = DELIMITEDTEXT,
FORMAT_OPTIONS(
FIELD_TERMINATOR = ',',
STRING_DELIMITER = '"',
)
)
改为以十六进制指定。
STRING_DELIMITER = '0x22'
(根据https://msdn.microsoft.com/en-au/library/dn935026.aspx结尾有人描述的问题)
通过添加一个中间步骤将文件从 csv 格式转换为 ORC 格式,最终解决了这个问题。
它有点笨拙(因为它留下了一堆乱七八糟的副本),但 PolyBase 确实可以使用文件格式:
CREATE EXTERNAL FILE FORMAT Orc
WITH (FORMAT_TYPE = ORC)