问题描述
我正在尝试运行一个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 (将#修改为@)