我是Bigdata的新手,目前正在学习Hive.作为SerDe的一部分,我理解Hive中的InputFormat和OutputFormat的概念.我也理解'Stored as'用于以特定格式存储文件,就像InputFormat一样.但我不明白使用'InputFormat,OutputFormat'和'Stored as'之间有什么重大区别.
任何帮助表示赞赏.
我的第一次尝试是:
CREATE TABLE t1 (
a string )
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE ;
Run Code Online (Sandbox Code Playgroud)
但这样做的结果是:
CREATE TABLE t1 (
a string )
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS INPUTFORMAT
'org.apache.hadoop.mapred.TextInputFormat'
OUTPUTFORMAT
'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' ;
Run Code Online (Sandbox Code Playgroud)
这似乎导致二进制文件而不是文本文件。
我将数据插入 t1:
insert into t1 values ( "hello");
INFO : Loading data to t1
INFO : Table t1 stats: [numFiles=1, numRows=1, totalSize=14, rawDataSize=5]
No rows affected (86.403 seconds)
Run Code Online (Sandbox Code Playgroud)
结果的 hdfs 文件是:
14 2017-10-18 17:20 t1/000000_0.deflate
Run Code Online (Sandbox Code Playgroud)
并且内容是二进制的。我真正需要的是一个文本文件。
那么,是否有可能获得文本格式的 hdfs …