Google cloud storage Google DataProc Presto:如何将Presto查询结果写入Google云存储?

Google cloud storage Google DataProc Presto:如何将Presto查询结果写入Google云存储?,google-cloud-storage,presto,google-cloud-dataproc,Google Cloud Storage,Presto,Google Cloud Dataproc,我有一个DataProc集群,其中Presto作为可选组件安装。我的数据存储在谷歌云存储(GCS)中,我可以用Presto进行查询。但是,我没有找到将查询结果写回GCS的方法。如果我登录到主节点并从那里运行Presto命令,我可以写入hdfs,但它无法识别任何GCS位置 如何将Presto查询结果写入GCS?您需要创建一个由GCS支持的配置单元外部表,例如: gcloud dataproc jobs submit hive \ --cluster <cluster> \

我有一个DataProc集群,其中Presto作为可选组件安装。我的数据存储在谷歌云存储(GCS)中,我可以用Presto进行查询。但是,我没有找到将查询结果写回GCS的方法。如果我登录到主节点并从那里运行Presto命令,我可以写入hdfs,但它无法识别任何GCS位置


如何将Presto查询结果写入GCS?

您需要创建一个由GCS支持的配置单元外部表,例如:

gcloud dataproc jobs submit hive \
    --cluster <cluster> \
    --execute "
        CREATE EXTERNAL TABLE my_table(id  INT, name  STRING)
        STORED AS PARQUET
        location 'gs://<bucket>/<dir>/';"
gcloud dataproc作业提交配置单元\
--簇\
--执行“
创建外部表my_表(id INT,名称字符串)
作为拼花地板储存
位置'gs://'

然后将您的Presto查询结果插入表。

Presto从Presto 302()开始就在本地支持GCS。你说“它不识别任何地面军事系统位置”是什么意思?Dataproc Presto是PrestoDB而不是PrestoSQL。谢谢你的回答。但是,有没有一种方法可以在不首先创建表的情况下导出数据?当有很多列时,手动指定表架构会很不方便。另外,当您说“将Presto查询结果插入表”时,您的意思是使用
insert into table my_table select*from table a?如果是这样的话,我认为它并不是真的使用presto进行查询。它使用配置单元进行查询和插入。您能澄清一下吗?在使用Presto查询插入空表之前,可以先用配置单元准备空表。或者,您可能会发现只使用
createtable。。。如图所示,选择要使用为表格指定的GCS位置导出的查询