Athena导出CSV到S3丢失逗号分隔符,如何配置保留分隔符?
Athena CTAS写入S3 CSV文件保留逗号分隔符的配置方法
缺少逗号分隔符的核心原因是:Athena的TEXTFILE格式默认使用ASCII控制字符\001(SOH字符)作为字段分隔符,未显式指定的情况下不会默认使用逗号,你可以通过以下两种方式配置解决:
方法1:基于TEXTFILE格式显式指定分隔符
在CTAS语句的WITH参数中新增field_delimiter配置指定逗号为分隔符,同时补充compression参数开启gzip压缩,修正后的语句如下:
CREATE TABLE NODES_GZIPPED_NODESTEST5 WITH ( external_location = 'my-bucket', format = 'TEXTFILE', field_delimiter = ',', compression = 'GZIP' ) AS SELECT col1, col2 FROM ExistingTableIHave LIMIT 10;
方法2:直接使用CSV格式(更推荐)
直接指定format为CSV,默认就会使用逗号作为分隔符,遇到字段含逗号、引号等特殊字符时还会自动做转义处理,稳定性更强,示例语句如下:
CREATE TABLE NODES_GZIPPED_NODESTEST5 WITH ( external_location = 'my-bucket', format = 'CSV', compression = 'GZIP' ) AS SELECT col1, col2 FROM ExistingTableIHave LIMIT 10;
内容的提问来源于stack exchange,提问作者Ryan
相关产品推荐
相关产品推荐

