通过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,date
order by timestamp asc
)
SELECT
  epoch,CASE WHEN element_at(map_values,'field1') IS NOT NULL THEN map_values['filed1'] ELSE NULL END AS field1,'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")

我在数据库可视化器中获得的输出是(附加示例输出):

我们非常感谢您的帮助。谢谢!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)