在使用beeline的DSV输出格式时,可能会遇到一个问题,即输出的文件中包含了换行符,但是这些换行符在导入到其他程序中时并未生效,导致数据无法正确处理。解决该问题的方法是,在查询语句中加入以下设置:
set incrementalcsvcolumns=true; set hive.cli.print.header=false; set hive.resultset.use.unique.column.names=false; set hive.cli.print.current.query=true;
其中,第一个设置是启用增量导出模式,第二个设置是禁止输出文件头,第三个设置是禁止使用唯一列名,第四个设置是打印当前查询语句,以便查看输出结果是否正确。
然后,在查询语句的结尾处添加以下语句:
union all select null,NULL,NULL,NULL,NULL,NULL from table limit 0;
这样做的目的是在最后加入一条空行,用来强制输出文件中的所有换行符。这样,在导入其他程序时,就可以正确处理所有换行符了。