我有一個CSV文件和相同的元數據。此CSV中的列由管道|分隔符號。樣本數據如下:如何在Hive中處理逗號分隔的十進制值?
name|address|age|salary|doj
xyz | abcdef|29 |567,34|12/02/2001
這裏salary
列型小數的但不是使用period .
爲十進制分隔符,用於comma ,
。
我創建了Hive外部表,如下所示,對於此數據Hive顯示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 (.)
符號。
任何你不能用小數點替換文件中的逗號分隔符的原因嗎? – Andrew
這些文件很大,被其他團隊傾倒。我可以編寫一些map-reduce程序或Spark來替換逗號分隔符,但在此之前我想檢查一下Hive中是否有某些我可以使用的東西。 – Shekhar