我有一个csv文件和相同的元数据。此csv中的列由管道|符号分隔。样本数据如下:
name|address|age|salary|doj
xyz | abcdef|29 |567,34|12/02/2001
在这里 salary
列的类型为decimal,但不使用 period .
作为十进制分隔符, comma ,
已使用。
我创建了hive external表,如下所示 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工作正常。
我想知道如何告诉Hive,这个特定的列是类型 DECIMAL
小数点分隔符是 comma (,)
而不是一个 period (.)
符号。
1条答案
按热度按时间zkure5ic1#
您可以轻松地用salary作为字符串构建表,并替换顶部视图中的逗号。这可能是最容易做到的,因为数据很大,而且可能是别人拥有的。