私は同じCSVファイルとメタデータを持っています。このCSVの列は、パイプで区切られています。シンボル。次のようにサンプルデータがある:Hiveでコンマ区切りの10進値を処理する方法は?
name|address|age|salary|doj
xyz | abcdef|29 |567,34|12/02/2001
ここsalary
列が型小数のものではなく、小数点セパレータとしてperiod .
を使用する、comma ,
が使用されます。
以下のようにHive外部テーブルを作成しました。このデータでは、Hiveはsalary
カラムのNULL
を表示しています。
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/';
私は予想通り、その後String
にsalary
列のデータ型を変更した場合、ハイブが正常に動作します。
この特定の列のタイプがDECIMAL
で、小数点の区切りがcomma (,)
で、period (.)
の記号ではないことをHiveに伝える方法を知りたいと思います。
ファイル内のカンマ区切り記号を小数点記号に置き換えることはできません。 – Andrew
これらのファイルは他のチームによってダンプされています。カンマ区切りを置き換えるためにmap-reduceプログラムやSparkを書くこともできますが、それを行う前に、私が使うことができるHiveに何かがあるかどうかをチェックしたいと思っていました。 – Shekhar