2017-04-22 7 views
3

doubleやstringなどの数値列を持つハイブテーブルを作成しました。私のファイルには、数値と文字列の両方のNULL値が含まれています。この表にファイルをロードしようとすると、数値列のNULL値がfileの '\ N'に置き換えられます。これは数値型列のNULL値を処理するハイブプロパティですが、私はNULLを '\ N'の代わりに別のものに変更することができます。データを照会する際、データファイル内\N\NNULLとして解釈されているようNULL値は、データファイルに記述されているデフォルトでハイブの数値列の場合、NULLデータが ' N'に変換されます。

答えて

7


TBLPROPERTIES('serialization.null.format'=...)

などを使用してオーバーライドできます。
TBLPROPERTIES('serialization.null.format'='')次のことを意味します。

  • あなたがテーブル
  • を照会するとき、データファイル内の空のフィールドがテーブルに行を挿入すると、NULL値は、データファイルに書き込まれますNULLとして扱われます空のフィールド

は、このプロパティは、テーブルの作成の一部として宣言することができ

create table mytable (...) 
tblproperties('serialization.null.format'='') 
; 

です。後で変更することができます。

alter table mytable set tblproperties('serialization.null.format'='') 
; 
関連する問題