Hive没有正确创建CSV文件

时间:2013-02-27 10:48:33

标签: amazon-s3 hive amazon-emr

我正在尝试将Hive结果导出到位于Amazon s3上的文件。

但结果文件有一些无法识别的字符,如square等。

结果文件格式的类型是binary / octet-stream而不是csv。

我没有得到乳清,因为它无法创建csv文件。

使用的hive版本是hive-0.8.1。

我正在按照下面的步骤进行操作。

顺便说一下,从Amazon EMR启动的实例中使用配置单元。

 create table test_csv(employee_id bigint, employee_name string, employee_designation string) row format delimited fields terminated by ',' lines terminated by '\n' stored as textfile;

  insert overwrite table test_csv select employee_id , employee_name , employee_designation from employee_details;

  INSERT OVERWRITE DIRECTORY 's3n://<path_to_s3_bucket>' SELECT * from test_csv;

你能告诉我这可能是什么原因吗?

3 个答案:

答案 0 :(得分:1)

您可以通过命令行从Hive导出数据:

hive -e 'select * from foo;' > foo.tsv

你可能可以通过sed或其他东西将标签变换为逗号,我们只是将TSV用于所有内容。

答案 1 :(得分:0)

您是否尝试将HDFS中的Hive仓库目录打开到输出中以检查数据的存储方式?

我认为不需要执行此行

INSERT OVERWRITE DIRECTORY 's3n://<path_to_s3_bucket>' SELECT * from test_csv;

而是可以直接执行“dfs -get”

答案 2 :(得分:0)

我知道,INSERT OVERWRITE DIRECTORY将始终使用ctrl-A('\ 001')作为分隔符。使用表数据直接复制文件将是最佳解决方案。 GL。

相关问题