我想从 S3 中存储的多个 CSV 文件在 AWS Athena 中创建一个表。
CSV 具有包含列名称的标题行。我的问题是每个 CSV 中的列的顺序不同,我想按列的名称获取列。
当我在 Athena 中尝试正常的 CREATE TABLE 时,我得到了前两列。
CREATE EXTERNAL TABLE `test`(
`id` string,
`name` string)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
'escapeChar'='\\',
'quoteChar'='\"',
'separatorChar'=',')
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
's3://...'
TBLPROPERTIES (
'has_encrypted_data'='false')
Run Code Online (Sandbox Code Playgroud)
这是一个例子:
.csv 1:
+----+-------+-------+---------+
| id | name | price | comment |
+----+-------+-------+---------+
| 1 | shirt | 123 | abc |
| 2 | shoes | 222 | ddd |
+----+-------+-------+---------+ …Run Code Online (Sandbox Code Playgroud)