aws glue(或athena或presto)-更改十进制格式

bqf10yzr  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(465)

我试图读取一个csv文件使用雅典娜。其中一个字段是双精度的,用逗号作为小数点分隔符而不是点。
有办法读吗?或者是唯一的方法是转换(使用每点替换逗号)?

oymdgrw7

oymdgrw71#

没有办法改变一个设置,使雅典娜读取值的两倍,但有办法绕过它。你必须使用 string 作为两种情况下列的数据类型:
创建一个将值转换为双倍值的视图(使用 CAST(replace(text, ',', '.') AS double) 正如piotr所说)。这样就不必在每个查询中都包含转换表达式。
使用createtableas(ctas)并将值转换为double(使用相同的表达式)到一个新表中。如果你这样做,你也可以转换为例如Parquet地板,并获得其他好处。不过,每次数据发生变化时都必须这样做,这可能会带来不便。

相关问题