AWS Athena 导入 CSV 文件

har*_*B10 4 amazon-web-services amazon-athena

我将此数据作为 .csv 存储在 S3 中(但它可以是最适合我的要求的任何其他文件格式):

"41.9100687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417","41.9810128,-87.8785121","41.9200687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417",
"41.9100687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417","41.9810128,-87.8785121","41.9200687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417",
"41.9100687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417","41.9810128,-87.8785121","41.9200687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417",
"41.9100687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417","41.9810128,-87.8785121","41.9200687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417",
Run Code Online (Sandbox Code Playgroud)

我想每列有一个坐标:

像这样:

坐标:

1.  41.9100687,-87.8805614

2.  41.9802511,-87.8803253

3.  41.9806802,-87.8792417
Run Code Online (Sandbox Code Playgroud)

导入 S3 后,我选择 CSV 作为数据类型...然后添加字符串列。

在此处输入图片说明

但相反,我得到了一些奇怪的表格输出。除此之外,我尝试将其作为带有逗号分隔符的纯 txt 文件导入。我得到了同样奇怪的输出。

在此处输入图片说明

我在这里做错了什么?

编辑

test列屏幕截图来自另一个但相同的示例。应该有gps_coordinates

Joh*_*ein 8

为了重现您的情况,我执行了以下操作:

  • 使用您的示例数据 ( gps.txt)创建了一个文本文件
  • 将其上传到自己文件夹中的 Amazon S3 存储桶(该文件夹中没有其他文件)
  • 在 Amazon Athena 中创建了一个表
    • 将位置指定为文件夹名称( s3://my-bucket/gps/)
    • 指定7 列(因为示例文件中有 7 个字符串值)

但是,由于数据在每对数字中都有逗号,因此我将 SerDe 更改为 OpenCSVSerDe处理 CSV - Amazon Athena

CREATE EXTERNAL TABLE IF NOT EXISTS default.gps (
  `c1` string,
  `c2` string,
  `c3` string,
  `c4` string,
  `c5` string,
  `c6` string,
  `c7` string 
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde' 
WITH SERDEPROPERTIES ("separatorChar" = ",", "escapeChar" = "\\") 

LOCATION 's3://my-bucket/gps/'
TBLPROPERTIES ('has_encrypted_data'='false');
Run Code Online (Sandbox Code Playgroud)

然后我就能够成功查询该表。示例列值为:41.9100687,-87.8805614