pyhs2/hive不存在与路径文件和文件匹配的文件

pyhs2/hive不存在与路径文件和文件匹配的文件,hive,hdfs,Hive,Hdfs,使用hive或beeline客户端,我在执行以下语句时没有问题: hive -e "LOAD DATA LOCAL INPATH '/tmp/tmpBKe_Mc' INTO TABLE unit_test_hs2" 文件中的数据已成功加载到配置单元中 但是,从同一台计算机使用pyhs2时,找不到该文件: import pyhs2 conn_str = {'authMechanism':'NOSASL', 'host':'azus',} conn = pyhs2.connect(conn_str

使用hive或beeline客户端,我在执行以下语句时没有问题:

hive -e "LOAD DATA LOCAL INPATH '/tmp/tmpBKe_Mc' INTO TABLE unit_test_hs2"
文件中的数据已成功加载到配置单元中

但是,从同一台计算机使用pyhs2时,找不到该文件:

import pyhs2
conn_str = {'authMechanism':'NOSASL', 'host':'azus',}
conn = pyhs2.connect(conn_str)
with conn.cursor() as cur:
    cur.execute("LOAD DATA LOCAL INPATH '/tmp/tmpBKe_Mc' INTO TABLE unit_test_hs2")
引发异常:

Traceback (most recent call last):
  File "data_access/hs2.py", line 38, in write
    cur.execute("LOAD DATA LOCAL INPATH '%s' INTO TABLE %s" % (csv_file.name, table_name))
  File "/edge/1/anaconda/lib/python2.7/site-packages/pyhs2/cursor.py", line 63, in execute
    raise Pyhs2Exception(res.status.errorCode, res.status.errorMessage)
pyhs2.error.Pyhs2Exception: "Error while compiling statement: FAILED: SemanticException Line 1:23 Invalid path ''/tmp/tmpBKe_Mc'': No files matching path file:/tmp/tmpBKe_Mc"
我看到过关于这个问题的类似问题,通常的答案是查询运行在不同的服务器上,而该服务器上没有存储本地文件“/tmp/tmpBKe_Mc”。但是,如果是这样的话,为什么直接从CLI运行命令有效,但使用pyhs2却不起作用

(第二个问题:如何显示哪台服务器正在尝试处理查询?我尝试了cur.execute(“set”),它返回所有配置参数,但在对“host”进行grepping时,返回的参数似乎不包含真实的主机名。)


谢谢

发生这种情况是因为pyhs2试图在集群上查找文件


解决方案是将您的源代码保存在相关的hdfs位置,而不是/tmp

嗨,John,我可以知道问题是如何解决的吗?对不起,我们不再使用Hive,因此无法测试。