読み込んでいるファイルは ' ' (空白) で区切られています。以下はファイルです。ファイルは HDFS にあります:-
001 000
001 000
002 001
003 002
004 003
005 004
006 005
007 006
008 007
099 007
1> 外部テーブルを作成し、以下のコマンドを発行してファイルをロードしています:-
CREATE EXTERNAL TABLE IF NOT EXISTS graph_edges (src_node_id STRING COMMENT 'Node ID of Source node', dest_node_id STRING COMMENT 'Node ID of Destination node') ROW FORMAT DELIMITED FIELDS TERMINATED BY ' ' STORED AS TEXTFILE LOCATION '/user/hadoop/input';
2>この後、次のコマンドを発行して、テーブルを別のファイルに挿入するだけです:-
INSERT OVERWRITE DIRECTORY '/user/hadoop/output' SELECT * FROM graph_edges;
3>ファイルをcatすると、フィールドは区切り文字で区切られません:-
hadoop dfs -cat /user/hadoop/output/000000_0
出力:-
001000
001000
002001
003002
004003
005004
006005
007006
008007
099007
誰か助けてくれませんか?区切り文字が削除される理由と、出力ファイルを区切る方法を教えてください。
CREATE TABLE コマンドで試しDELIMITED BY '\t'
ましたが、不要な NULL 列を取得しています。
どんなポインタでも大歓迎です。Hive 0.9.0 バージョンを使用しています。