我正在加载的文件由“ ”(空格)分隔。下面是文件。该文件驻留在 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
Output:-
001000
001000
002001
003002
004003
005004
006005
007006
008007
099007
有人可以帮我吗?为什么删除分隔符以及如何分隔输出文件?
在 CREATE TABLE 命令中我尝试过DELIMITED BY '\t'
但后来我得到了不必要的 NULL 列。
任何指示都非常有帮助。我使用的是 Hive 0.9.0 版本。