如何将Hive查询结果从GCE以CSV格式导出到Google云存储桶

时间:2018-11-30 06:01:57

标签: apache hive google-cloud-platform google-cloud-storage hiveql

我有一个查询,可将查询结果写入CSV文件:

hive -e 'select * from transactions limit 50'>abc.csv

因此结果将存储在 abc.csv 中,该文件仅在该gcp实例中可用。

但是我需要将其导出到GCS存储桶中,以便以后将其转储到BigQuery中。

我尝试了类似的方法,但是没有用:

hive -e 'select * from transactions limit 50'>gs://my-bucket/abc.csv

那么,如何将我的配置单元查询结果存储在GCS存储桶中?

2 个答案:

答案 0 :(得分:2)

您可以将配置单元查询写入实例,然后使用gsutil命令将其移至存储桶。

gsutil mv abc.csv gs://my-bucket/abc.csv

如果您的实例上未安装gsutil,请按照此处提供的步骤操作:Install gsutil | Cloud Storage

要了解有关将存储桶与实例一起使用的更多信息,可以参考google文档:Connecting to Cloud Storage buckets

另一种选择是将云存储存储桶安装到实例中,从而使您可以将配置单元查询结果直接写入存储桶。

为此,您将需要使用Cloud Storage FUSE,可以按照此处的步骤进行安装:Cloud Storage FUSE | Cloud Storage

答案 1 :(得分:0)

您也可以使用下面的查询,

insert overwrite  directory 'gs://bucket-name/file_name/' row format delimited \
fields terminated by ',' stored as textfile \
select * from <db_name>.<table_name> limit 10;

上述查询会将结果放入一个格式为 CSV 的文件中的指定存储桶位置。