无法打开Hive查询结果文件000000_0

时间:2013-06-28 20:35:48

标签: ubuntu hive file-type

我在hive中创建了一个表,并将数据填充到表中。(使用json serde的json数据)。 我能够在控制台上获得查询结果。 像:

select user from mytable....

现在我使用以下命令将查询结果保存为逗号分隔文件:

set hive.io.output.fileformat = CSVTextFile;
INSERT OVERWRITE LOCAL DIRECTORY '/host/Hadoop/' select user,task from my table

正在000000_0位置创建文件/host/Hadoop,但是当我点击要打开的文件时,显示错误

could not display file /host/Hadoop/000000_0 unknown type.

我不能打开这个文件吗?有没有其他方法可以打开这个文件? (我使用的是Ubuntu 12.04操作系统)

2 个答案:

答案 0 :(得分:1)

您还可以尝试使用自定义CSV SerDe,它使用OpenCSV来解析文件 此外,问题是HIVE不允许您指定输出分隔符 - https://issues.apache.org/jira/browse/HIVE-634

解决方案是创建输出的外部表(带分隔符规范)并插入覆盖表而不是目录。

答案 1 :(得分:0)

据推测,Ubuntu依赖文件扩展名来确定如何打开文件。你的文件没有,所以Ubuntu不知道使用什么程序。要解决此问题,请明确指定程序(例如,通过运行less /host/Hadoop/000000_0less打开它),或者使用Ubuntu识别的扩展名重命名该文件(例如,/host/Hadoop/000000_0.txt)。