我正在尝试使用雅典娜读取CSV文件。其中一个字段是 DOUBLE,其中逗号作为小数分隔符而不是点。
有没有办法阅读它?还是唯一的方法是转换(使用每个点替换逗号)?
无法更改设置以使 Athena 将值读取为双精度,但有一些解决方法。在这两种情况下,您都必须使用string
作为列的数据类型:
- 创建一个将值转换为双精度的视图(按照 Piotr 的建议使用
CAST(replace(text, ',', '.') AS double)
)。这样,您就不必在每个查询中都包含转化表达式。 - 使用"将表创建为 (CTAS)"并将值转换为双精度值(使用相同的表达式)到新表中。如果您这样做,您还可以转换为例如镶木地板并获得其他好处。但是,每次数据更改时都必须执行此操作,这可能会很不方便。