两件事。
简单的回答:
presto --execute "select * from foo" --output-format CSV > foo.csv
您可以使用这些格式:
ALIGNED
VERTICAL
CSV
TSV
CSV_HEADER
TSV_HEADER
为了完整起见,您可以像这样运行 presto cli 客户端
presto --server {server_name}:{server_port} --catalog {catalog_name} --schema {schema_name} --user {user_name} --execute "SELECT * FROM table_name LIMIT 1" --output-format CSV > output_fname.csv
如果您希望包含标题,请按照上面的答案提示使用以下内容
--output-format CSV_HEADER
希望这有帮助。
我有一个关于这个的查询,导出数据都很好。但在我的例子中,查询所花费的执行时间是最糟糕的。例如,我从表中导出了一个 4.5G 和 4600 万行的文件,耗时 15 分钟。假设我有 3 亿行和 20G 文件大小。需要 1 小时以上。有没有办法优化查询?
示例查询
presto --server hostname:8081 --catalog hive --schema dbname --user zx_tenant --execute "select md5hash,email, decile , 'Hispanic' segment,(case when gqs in ('1','2','3') then '1' when gqs in ('4','5') and signal_match='Y' then '2' else '3' end) priority,l_postal,age_55_plus from tablename " --output-format TSV_HEADER | tr '\t' '|' > HispanicW1TRT