2017-09-27 45 views
2

我试图创建CSV文件的外部表与AWS雅典娜与下面的代码,但该行TBLPROPERTIES ("skip.header.line.count"="1")不起作用:它不会跳过第一行(头)的csv文件。AWS雅典娜 - 创建外部表跳过第一行

CREATE EXTERNAL TABLE mytable 
(
    colA string, 
    colB int 
) 

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
WITH SERDEPROPERTIES (
    'separatorChar' = ',', 
    'quoteChar' = '\"', 
    'escapeChar' = '\\' 
    ) 
STORED AS TEXTFILE 
LOCATION 's3://mybucket/mylocation/' 
TBLPROPERTIES (
    "skip.header.line.count"="1") 

有没有建议吗?

回答

2

这是一个尚未实现的功能。 ‘再一次,我们正在研究,并会尽快我们有一个 结果报到对不起,这这最终采取比 我们的预期要长。’

:见阿布舍克@ AWS的响应here

我的解决方法一直是预处理创建表之前的数据:

  1. 使用bash sed -e 1d -e 's/\"//g' file.csv > file-2.csv
  2. 从S3
  3. 条标题下载CSV文件将结果上传到自己的文件夹在S3上
  4. 创建表
+1

此功能自2018年1月19日已经可以在AWS雅典娜。看到忽略头https://docs.aws.amazon.com/athena/latest/ug/release-note-2018-01-19.html >支持。定义表格时可以使用skip.header.line.count属性,以允许Athena忽略标题。 – shawnzhu

1

刚刚尝试过"skip.header.line.count"="1",现在似乎工作正常。

+0

其实它不再工作。不知道什么时候这将被真正修复。 –

+0

TBLPROPERTIES(“skip.header.line.count” =“1”)..工作得很好,我 –

+0

它开始自2018年1月19日上班。看到https://docs.aws.amazon.com/athena/latest/ug/release-note-2018-01-19.html – shawnzhu