我正在通过pyodbc连接访问配置单元。它使用hortonworks配置单元odbc驱动程序。我使用pandas将sql结果读入Dataframe。有些查询有效,有些则无效。我不明白为什么。例如,
conn = pyodbc.connect('DSN=HiveConnection;UID=username;PWD=password;', autocommit=TRUE)
df = pd.read_sql("SELECT * FROM myTable AS m WHERE m.file = 'myfile';", con=conn)
一切正常。但是,当我运行这个
df = pd.read_sql("SELECT DISTINCT m.file FROM myTable AS m;", con=conn)
还是这个
df = pd.read_sql("SELECT m.file, count(m.file) FROM myTable AS m GROUP BY m.file;", con=conn)
它给了我一个错误。
pyodbc.Error: ('HY000', "[HY000] [Hortonworks][HiveODBC] (35) Error from Hive: error code: '0' error message: 'ExecuteStatement finished with operation state: ERROR_STATE'. (35) (SQLExecDirectW)")
我找到这个了https://kb.tableau.com/articles/issue/error-from-hive-executestatement-finished-connecting-to-hadoop-table 解决了一个类似的问题。它提到这个问题很可能与用户权限有关。我不认为这是问题所在,因为我可以运行一些查询,但不能运行其他查询。任何帮助都将不胜感激。
1条答案
按热度按时间xriantvc1#
select *
获取任务不需要mapreduce作业。问题可能是被查询的集群需要一个您有权执行mapreduce作业的队列。请尝试将队列设置为您知道有权访问的队列。
对于tez任务
对于mapreduce任务