0

我在 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 操作系统)

4

2 回答 2

1

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

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

于 2013-07-04T18:35:19.397 回答
0

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

于 2013-06-28T20:40:09.580 回答