我在Amazon EMR上使用配置单元脚本来分析一些数据。将列标题添加到配置单元结果集
我将输出传输到Amazon s3存储桶。现在,配置单元脚本的结果不包含列标题。
我一直在使用,这也试过:
set hive.cli.print.header=true;
但它并不能帮助。你能帮我吗?
我在Amazon EMR上使用配置单元脚本来分析一些数据。将列标题添加到配置单元结果集
我将输出传输到Amazon s3存储桶。现在,配置单元脚本的结果不包含列标题。
我一直在使用,这也试过:
set hive.cli.print.header=true;
但它并不能帮助。你能帮我吗?
我想直接的方式仍然是不可能的(HIve: writing column headers to local file?)。 一些解决方案将是DESCRIBE table_name
导出结果到文件:
$ hive -e 'DESCRIBE table_name' > file
编写一些脚本添加列名到您的数据文件。 GL!
我今天遇到了这个问题,并能够通过在原始查询和创建标题行的新的虚拟查询之间执行UNION ALL来获得所需的内容。我在每个部分添加了一个排序列,并将标题设置为0,将数据设置为1,以便我可以按该字段进行排序,并确保标题行排在最前面。
create table new_table as
select
field1,
field2,
field3
from
(
select
0 as sort_col, --header row gets lowest number
'field1_name' as field1,
'field2_name' as field2,
'field3_name' as field3
from
some_small_table --table needs at least 1 row
limit 1 --only need 1 header row
union all
select
1 as sort_col, --original query goes here
field1,
field2,
field3
from
main_table
) a
order by
sort_col --make sure header row is first
这是有点笨重,但至少你可以得到你需要的一个单一的查询。
希望这会有所帮助!
您的配置单元脚本是什么样子的?
您的配置单元脚本的输出是否包含标题数据?当您将输出复制到s3存储桶时,它是否会丢失?
如果你可以提供一些关于你正在做什么的更多细节会有所帮助。
不知道这些细节,这里是你可以尝试的东西。
创建您的蜂巢脚本如下:
USE dbase_name:
SET hive.cli.print.header=true;
SELECT some_columns FROM some_table WHERE some_condition;
然后运行脚本:
$ hive -f hive_script.hql > hive_output
您的输出然后复制到您的S3存储
$ aws s3 cp ./hive_output s3://some_bucket_name/foo/hive_output
嗨, sqoop从oracle获取数据,但不是schema/headers。我想将模式作为标题。例如 姓名,年龄,地点 venu,31,Banlgaore srinu,32,Hyderabad ..... llike this。如何以标题的形式获取模式,而不是像这种格式。 Oracle到S3(在sqoop中),..不是以本地..到s3类似上面的格式。 – 2016-04-20 07:06:53
这可能只是一个错字(或版本相关的更改),但以下作品适用于我:
set hive.cli.print.headers=true;
这是不是“头”
你要列入只是看到他们在命令行界面的一些输出文件列标题“头”? – www 2013-03-01 01:11:49
@Wawrzniec我希望他们在输出文件。 – Sam 2013-03-01 02:43:09