导入CSV文件时,AWS Athena会四舍五入数字

时间:2019-01-15 20:47:42

标签: amazon-web-services csv amazon-athena

我正在尝试将CS​​V中的某些数据导入如下所示的AWS Athena中。

然后我在表中查看数据时 test_job_id 将数据四舍五入为1550000000000。有人知道我如何获取 test_job_id 的完整值,例如1546910000000每次都圆吗?

这是雅典娜使用的创建表查询:

CREATE EXTERNAL TABLE IF NOT EXISTS automation_test_results.automation_test_results (
  `test_job_id` decimal(13),
  `testrail_id` string,
)

更新:我现在正在TextEdit中查看文件。数据如下所示。当我将其上传到雅典娜时,我现在在test_job_id列中的每一行都得到了一个空正方形。数据如下:enter image description here

如果我为test_job_id的类型指定string,我确实可以正确看到这些值,但我希望它是一些数值。

1 个答案:

答案 0 :(得分:2)

通过一些实验,我能够导入您的数据如果我从十进制数字中删除了引号。我的表格创建如下:

CREATE EXTERNAL TABLE IF NOT EXISTS athena_test.s3data (
  `test_job_id` decimal,
  `testrail_id` string 
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe'
WITH SERDEPROPERTIES (
  'serialization.format' = ',',
  'field.delim' = ','
) LOCATION 's3://the-bucket/athena/'
TBLPROPERTIES ('has_encrypted_data'='false');

数据如下:

1547559017125, "@C665"
1547559017126, "@C666"
1547559017127, "@C667"

如果我尝试使用org.apache.hadoop.hive.serde2.OpenCSVSerde作为行格式,尽管我不太熟悉这样做,但似乎并没有喜欢它。

反正有没有生成您的CSV且在小数点后没有引号的情况?