Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何增加最大查询时间?_Python_Python 2.7_Pandas_Presto_Jaydebeapi - Fatal编程技术网

Python 如何增加最大查询时间?

Python 如何增加最大查询时间?,python,python-2.7,pandas,presto,jaydebeapi,Python,Python 2.7,Pandas,Presto,Jaydebeapi,我运行了一个查询,最终将返回大约1700万行,分为50万行。一切似乎都很顺利,但我遇到了以下错误: Traceback (most recent call last): File "sql_csv.py", line 22, in <module> for chunk in pd.read_sql_query(hours_query, db.conn, chunksize = 500000): File "/Users/michael.chirico/anaconda2/l

我运行了一个查询,最终将返回大约1700万行,分为50万行。一切似乎都很顺利,但我遇到了以下错误:

Traceback (most recent call last):
File "sql_csv.py", line 22, in <module>
    for chunk in  pd.read_sql_query(hours_query, db.conn, chunksize = 500000):
File "/Users/michael.chirico/anaconda2/lib/python2.7/site-packages/pandas/io/sql.py", line 1424, in _query_iterator
    data = cursor.fetchmany(chunksize)
File "/Users/michael.chirico/anaconda2/lib/python2.7/site-packages/jaydebeapi/\__init__.py", line 546, in fetchmany
    row = self.fetchone()
File "/Users/michael.chirico/anaconda2/lib/python2.7/site-packages/jaydebeapi/\__init__.py", line 526, in fetchone
    if not self._rs.next(): jpype._jexception.SQLExceptionPyRaisable: java.sql.SQLException: Query failed (#20171013_015410_01255_8pff8):
**Query exceeded maximum time limit of 60.00m**
回溯(最近一次呼叫最后一次):
文件“sql_csv.py”,第22行,在
对于pd.read\u sql\u查询中的块(小时查询,db.conn,chunksize=500000):
文件“/Users/michael.chirico/anaconda2/lib/python2.7/site packages/pandas/io/sql.py”,第1424行,在查询迭代器中
data=cursor.fetchmany(chunksize)
文件“/Users/michael.chirico/anaconda2/lib/python2.7/site packages/jaydebeapi/\\ uu init\ uuu.py”,第546行,在fetchmany中
row=self.fetchone()
fetchone中的文件“/Users/michael.chirico/anaconda2/lib/python2.7/site packages/jaydebeapi/\\ uu init\ uuu.py”,第526行
如果不是self._rs.next():jpype._jexception.SQLExceptionPyRaisable:java.sql.SQLException:Query失败(#20171013_015410_01255_8pff8):
**查询超过了60.00m的最大时间限制**
显然,这样的查询可能需要一些时间;我对此很满意(分块意味着我知道我不会打破任何RAM限制——事实上,我运行的文件输出显示查询在崩溃之前完成了1700万行中的16M行!)

但是我没有看到任何直接的
read\u sql\u query
选项
params
似乎是一个不错的候选者,但在
jaydebeapi
文档中,我看不到任何关于
execute
的正确参数的提示


如何克服这个问题并运行完整的查询?

执行查询时,Presto会根据CPU、内存、执行时间和其他约束条件限制每个查询。你达到了执行时限。请确保您的查询是正确的,否则会导致群集崩溃

要增加查询执行时间,请在中定义一个新值


要覆盖最大查询执行时间,请在CLI中添加此参数:

SET SESSION query_max_execution_time='60m';

这将更改为60分钟,请注意单引号。

您似乎已经达到了基础数据库查询时间限制。很抱歉,我对JDBC或presto都不熟悉,只是从stacktrace猜测。@georgexsh您毕竟是对的。直接查询数据库时遇到相同的问题。酷,您想共享您的解决方案吗?没有解决方案,因为我没有设置数据库查询限制的管理权限:/
SET SESSION query_max_execution_time='60m';