我在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操作系统)
答案 0 :(得分:1)
您还可以尝试使用自定义CSV SerDe,它使用OpenCSV来解析文件 此外,问题是HIVE不允许您指定输出分隔符 - https://issues.apache.org/jira/browse/HIVE-634
解决方案是创建输出的外部表(带分隔符规范)并插入覆盖表而不是目录。
答案 1 :(得分:0)
据推测,Ubuntu依赖文件扩展名来确定如何打开文件。你的文件没有,所以Ubuntu不知道使用什么程序。要解决此问题,请明确指定程序(例如,通过运行less /host/Hadoop/000000_0
以less
打开它),或者使用Ubuntu识别的扩展名重命名该文件(例如,/host/Hadoop/000000_0.txt
)。