使用 Linux 从 presto 保存不带引号的查询结果
Save query results from presto without quotes using Linux
我在 Linux 环境中使用 Presto Db。当我希望将我的查询结果保存到一个文件中时,它会在周围加上引号。
假设我 运行:
presto-cli --schema default --catalog hive --execute "select distinct(cust) from sales" > results.txt
结果保存如下:
"David B"
我稍后使用 sed 's/\"//g' 删除引号,但我想知道是否有办法解决这个问题。
默认输出格式为CSV
。您可以使用 TSV
(制表符分隔值),字段周围没有引号:
presto --output-format TSV --execute "SELECT ..."
如果要将制表符转换为逗号(或其他字符),可以通过标准 UNIX tr
命令通过管道传递结果:
presto ... | tr '\t' ','
请注意,TSV
输出格式对字段使用 C 样式转义,因此如果您的数据有制表符、换行符、反斜杠等,您会看到 \n
或\
在输出中。
我在 Linux 环境中使用 Presto Db。当我希望将我的查询结果保存到一个文件中时,它会在周围加上引号。
假设我 运行:
presto-cli --schema default --catalog hive --execute "select distinct(cust) from sales" > results.txt
结果保存如下:
"David B"
我稍后使用 sed 's/\"//g' 删除引号,但我想知道是否有办法解决这个问题。
默认输出格式为CSV
。您可以使用 TSV
(制表符分隔值),字段周围没有引号:
presto --output-format TSV --execute "SELECT ..."
如果要将制表符转换为逗号(或其他字符),可以通过标准 UNIX tr
命令通过管道传递结果:
presto ... | tr '\t' ','
请注意,TSV
输出格式对字段使用 C 样式转义,因此如果您的数据有制表符、换行符、反斜杠等,您会看到 \n
或\
在输出中。