我正在尝试运行一个hive脚本文件,其中包含在我的python脚本中调用的直线命令,如下所示:
!beeline -u "specified the connection" -f query.sql
这个查询是在hdfs上进行的,一个“!hdfs-dfs-ls”命令显示文件实际上在那里,但直线无法找到它。连接工作良好,我可以使用直线执行带有“-e”前缀的简单查询,但我希望运行整个脚本。我是使用直线和处理hdfs的初学者,所以我很抱歉没有正确地表达这个问题。有人能提出解决方案吗?
6ojccjat1#
脚本文件应该在执行直线命令的本地文件系统中,而不是在HDFS位置。在配置单元版本4.0.0-alpha-1之后,如果您提供完整的绝对路径,Hive-21511允许beeline-e使用存储在本地文件系统之外的其他文件系统中的脚本文件。前任。hdfs://hacluster1/usr/query.sql,默认情况下,仅当路径不是绝对路径时,它才会尝试在本地文件系统中查找查询文件。对于之前的配置单元版本,您需要将查询文件仅保留在本地文件系统中,然后再尝试。
1条答案
按热度按时间6ojccjat1#
脚本文件应该在执行直线命令的本地文件系统中,而不是在HDFS位置。
在配置单元版本4.0.0-alpha-1之后,如果您提供完整的绝对路径,Hive-21511允许beeline-e使用存储在本地文件系统之外的其他文件系统中的脚本文件。前任。hdfs://hacluster1/usr/query.sql,默认情况下,仅当路径不是绝对路径时,它才会尝试在本地文件系统中查找查询文件。
对于之前的配置单元版本,您需要将查询文件仅保留在本地文件系统中,然后再尝试。