如何在Hive中处理逗号分隔的十进制值?

舍哈尔

我有一个CSV文件和相同的元数据。此CSV中的列由竖线分隔。符号。样本数据如下:

name|address|age|salary|doj
xyz | abcdef|29 |567,34|12/02/2001

在这里,salary列的类型为小数,但不是period .用作小数分隔符comma ,

我创建了Hive外部表,如下所示,并为此HiveNULLsalary显示该数据

create external table employee as(
      name string,
      address string,
      age int,
      salary decimal(7,3),
      doj string
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '|'
LOCATION 's3://bucket/folder_having_many_csv_files/';

如果我将salary列的数据类型更改String为预期值,则Hive可以正常工作。

我想知道如何告诉Hive这个特定的列是类型,DECIMAL而十进制分隔符comma (,)不是period (.)符号。

调用外壳

您可以轻松地将薪水作为字符串构建表,并在顶部的视图中替换逗号。这可能是最简单的操作,因为数据量很大,并且可能是其他人拥有的。

create view table employee_decimal as
 select name
  , address
  , age
  , cast(regexp_replace(salary, ',', '.') as decimal(7,3)) as salary
  , doj
 from employee;

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Shell脚本中处理十进制值

如何在Hive Stack命令中设置十进制值

如何在php中设置最多十进制小数的十进制值

如何在 Django 模板中启用十进制值?

如何在rdlc报表中舍入十进制值

如何在Foundation 6中接受十进制值

如何在cpp中返回十进制值

如何在 hive/impala 中将二进制值转换为十进制

将多个十六进制值转换为以逗号分隔的十进制值

将十进制数字粘贴到Excel /逗号和点十进制分隔符中

用Java分隔十进制值

如何处理React的onChange事件中的十进制值作为输入?

如何读取由“ ”分隔但带有逗号的十进制数的数据

如何将DecimalFormat的十进制分隔符从逗号更改为点/点?

如何使用javascript执行数字的逗号和十进制分隔?

如何在Java中以大十进制反向处理负值?

regex表达式以逗号分隔十进制数

将逗号分隔的varchar转换为十进制

不要计算以 maxlength jqgrid 列十进制分隔的逗号

如何在setInterval函数中使用localStorage存储十进制值,并将“点”更改为“逗号”?

如何在Oracle的十进制列中插入空值或空值?

如何在SQL中的FROM OPENJSON()WITH中从十进制值中删除.0

如何使用本地化的十进制分隔符将十进制值从JSP传递到Action?

如何在Excel 2010中从奇数/偶数列中添加十进制值

如何在Jackson中使用本地化的十进制分隔符反序列化float值

如何在MySQL中生成随机的十进制值

如何在 PostgreSQL 中分别显示十进制值?

如何在聚合函数上舍入十进制值?

从列表中删除逗号并将十六进制转换为十进制值