作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 CSV 文件和元数据。此 CSV 中的列由管道分隔 |象征。样本数据如下:
name|address|age|salary|doj
xyz | abcdef|29 |567,34|12/02/2001
salary
列是十进制类型,但不使用
period .
作为小数点分隔符,
comma ,
用来。
NULL
为
salary
柱子。
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 工作正常。
DECIMAL
和小数点分隔符是
comma (,)
而不是
period (.)
象征。
最佳答案
您可以轻松地将薪水作为字符串构建表格,并在顶部的 View 中替换逗号。这可能是最容易做的事情,因为数据很大而且很可能是其他人拥有的。
create view table employee_decimal as
select name
, address
, age
, cast(regexp_replace(salary, ',', '.') as decimal(7,3)) as salary
, doj
from employee;
关于hive - 如何在 Hive 中处理逗号分隔的十进制值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41246004/
我是一名优秀的程序员,十分优秀!