私は 'org.apache.hadoop.hive.serde2.OpenCSVSerde'を使ってハイブテーブルのデータを書きます。OpenCSVSerde - HIVEを使用してNULLを持つカラムをいくつかの文字列に書く
CREATE TABLE testtable ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
"separatorChar" = ","
"quoteChar" = "'"
)
STORED AS TEXTFILE LOCATION '<location>' AS
select * from foo;
'foo'テーブルに空の文字列がある場合は、 '1'、 '2'、 ''などです。空の文字列はそのままテキストファイルに書き込まれます。テキストファイル内のデータは、 '1'、 '2'、 ''のようになります。
'foo'には、 '1'、 '2'、nullなどのnull値が含まれています。 null値はテキストファイルには書き込まれません。 テキストファイルのデータは、 '1'、 '2'、
と表示されます。csv serdeを使用してNULLがテキストファイルに正しく書き込まれていることを確認する方法を教えてください。空文字列または他の文字列として "nullstring"と書かれていますか?おそらく、nullを指定して空の文字列を置き換える必要があり、このものの
CREATE TABLE testtable ROW FORMAT SERDE
....
....
STORED AS TEXTFILE LOCATION '<location>'
TBLPROPERTIES ('serialization.null.format'='')
AS select * foo;
:
は私もこれを試してみました。しかし、これでさえできません。csvファイルにnullを書き込む方法を教えてください。
(NVLなど)のような選択クエリ自体の列のNULL値をチェックして何かに置き換える必要がありますか?