Dav*_*itz 5 hadoop hive mapreduce hiveql
设置textinputformat.record.delimiter为非默认值,对于加载多行文本非常有用,如下面的演示所示。
但是,在不退出cli并将其重新打开的情况下,我无法将此参数设置回其默认值。
以下选项均无效(也没有其他一些试验)
set textinputformat.record.delimiter='\n';
set textinputformat.record.delimiter='\r';
set textinputformat.record.delimiter='\r\n';
set textinputformat.record.delimiter='
';
reset;
Run Code Online (Sandbox Code Playgroud)
任何想法?
谢谢
create table mytable (mycol string);
insert into mytable select concat('Hello',unhex('A'),'world');
select concat('>>>',mycol,'<<<') as mycol from mytable;
Run Code Online (Sandbox Code Playgroud)
NewLine被解释为记录定界符,导致插入2条记录
+-------------+
| mycol |
+-------------+
| >>>Hello<<< |
| >>>world<<< |
+-------------+
Run Code Online (Sandbox Code Playgroud)
set textinputformat.record.delimiter='\0';
truncate table mytable;
insert into mytable select concat('Hello',unhex('A'),'world');
select concat('>>>',mycol,'<<<') as mycol from mytable;
Run Code Online (Sandbox Code Playgroud)
整个文本作为单个记录插入
+----------+
| mycol |
+----------+
| >>>Hello |
| world |
| <<< |
+----------+
Run Code Online (Sandbox Code Playgroud)
试图将分隔符改回换行符
set textinputformat.record.delimiter='\n';
truncate table mytable;
insert into mytable select concat('Hello',unhex('A'),'world');
select concat('>>>',mycol,'<<<') as mycol from mytable;
Run Code Online (Sandbox Code Playgroud)
仍然得到相同的结果
+----------+
| mycol |
+----------+
| >>>Hello |
| world |
| <<< |
+----------+
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1178 次 |
| 最近记录: |