pyhs2在查询中设置队列

时间:2016-08-29 11:53:57

标签: python hive queue

我使用pyhs2通过python查询hive,但是我无法在查询中设置队列。

我想将队列设置为adhoc

cursor.execute("set mapred.job.queue.name=adhoc;")
cursor.execute("select * from test")
pyhs2.error.Pyhs2Exception: 'Error while processing statement: FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.mr.MapRedTask'

当我尝试将队列放入查询中时:

cursor.execute("set mapred.job.queue.name=adhoc; select * from test")

查询的第二部分未执行

2 个答案:

答案 0 :(得分:0)

显然无法使用pyhs2运行多个语句,因此您无法设置映射队列名称。 Pyhs2不再被维护,自述文件建议使用支持这些操作的PyHive

答案 1 :(得分:0)

嗯,也许Angelo所说的并不是真的。 您可以在不同的上下文中设置它。

conn = pyhs2.connect(...)
c = conn.cursor()
c.execute('set mapred.job.queue.name=adhoc')
c.close()
c = conn.cursor()
c.execute("select * from test")
r = c.fetchall()
c.close()
conn.close()

我希望你明白了。