首页 > 解决方案 > 从通过 Python 脚本运行的 Presto 查询返回的打印标题

问题描述

我正在尝试运行 presto 查询,它在 DB Visualizer(数据库查询工具)中成功运行。通过 Python 脚本运行相同的查询后,它会按原样打印我的文件中的结果,但无法将标题写入我的 CSV 文件中。

谁能告诉我如何在文件中打印我的动态标题?

注意:我的标题是动态的,将基于 Presto 查询生成,因此我无法对标题进行硬编码。

我的代码如下:

from sys import argv
import argparse
from pyhive import presto
import prestodb
import pandas as pd


connection = presto.connect(host='XXXX', port=8889, username='test')
cur = connection.cursor()
print('Connection Established')

result = cur.execute("""
with map_date as 
(
 SELECT 
 box, 
 epoch,
 timestamp,
 date,
 map_agg(signalName, value) as map_values
from hive.test.table1
where box = 'A' 
and (time >= 1596045600 and time <= 1596045720)
and signalName in ('field1','field2')
GROUP BY box,epoch,timestamp,date
order by timestamp asc
)
SELECT
  epoch
, timestamp
, CASE WHEN element_at(map_values, 'field1') IS NOT NULL THEN map_values['filed1'] ELSE NULL END AS field1
, CASE WHEN element_at(map_values, 'field2') IS NOT NULL THEN map_values['filed2'] ELSE NULL END AS field2
, box
, date AS date
from map_date
""" )


rows = cur.fetchall()
print('Fetching Result')
print('Query Finished')    
fp = open('/Users/xyz/Desktop/Python/file.csv', 'w')
print('File Created')
myFile = csv.writer(fp)
myFile.writerows(rows)
cur.close()
connection.close()
print("Connection Closed")

我在 DB 可视化工具中得到的输出是(附加示例输出):

任何帮助深表感谢。谢谢!

标签: pythoncsvpresto

解决方案


推荐阅读