我正在使用一个名为phoenixdb的python模块来访问phoenix,它是用于查询HBase的SQL包装器。
这是我的代码段: -
import phoenixdb
database_url = 'http://localhost:8765/'
conn = phoenixdb.connect(database_url, autocommit=True)
cursor = conn.cursor()
cursor.execute("!table")
print cursor.fetchall()
cursor.close()
列出所有方案和表的phoenix查询是!table或!表。 但是当我尝试在执行函数中传递相同内容时,如上所示,我收到以下错误: -
Traceback (most recent call last):
File "phoenix_hbase.py", line 7, in <module>
cursor.execute("!table")
File "build/bdist.linux-x86_64/egg/phoenixdb/cursor.py", line 242, in execute
File "build/bdist.linux-x86_64/egg/phoenixdb/avatica.py", line 345, in prepareAndExecute
File "build/bdist.linux-x86_64/egg/phoenixdb/avatica.py", line 184, in _apply
File "build/bdist.linux-x86_64/egg/phoenixdb/avatica.py", line 90, in parse_error_page
phoenixdb.errors.ProgrammingError: ("Syntax error. Unexpected char: '!'", 601, '42P00', None)
有趣的是,当我尝试传递不同的查询时,例如选择查询,然后执行脚本并生成结果就好了。
Query:cursor.execute("select * from CARETESTING.EDR_BIN_SOURCE_3600_EDR_FLOW_SUBS_TOTAL limit 1")
Result:
[[2045,1023,4567]]
是否还有其他格式的传递!table,相当于phoenixdb库的执行函数中的show tables,我错过了?
我尝试在互联网上查找,但遗憾的是到目前为止还没有任何帮助。
由于
答案 0 :(得分:0)
!tables
是sqlline语法,JDBC接口无法解析。