HiveのLOAD DATAでtsvファイルを読み込んだら1列に1行分のすべての列が登録される。

LOAD DATAでtsvファイルを読み込んだら1列に1行分のすべての列が登録される。

LOADしたあとで、selectしてみると、

select col1 from table limit 100;

この結果が、col1に、col1からcol8までの値が登録されてしまっている。つまり、col1に1行分のデータが登録されてしまっている。そして、col2からcol8は、NULLになってしまっている。

desc formatted table;

してみると、フィールドが\t区切りじゃなくて、別の文字で区切られていた。

このテーブルの、CREATE TABLE文をあらためて確認してみると、確かに、フィールドの区切り文字に、\t以外の文字が指定してあった。

とほほ、こんなんで、2時間も無駄にしてしまうとは。