我们在我们组织的 Linux 服务器上安装了企业 hadoop 集群。我正在尝试将 csv 文件插入到我们的配置单元表之一中。我的本地 Windows 机器中有 csv 文件。我正在使用 python 并使用 jaydebeapi 包通过 jdbc 连接到 hive。当我在代码中使用“LOAD DATA LOCAL...”命令时,它会抛出与路径不是合法文件路径相关的错误。如何解决这个问题?以下是我收到的错误。
注意: 我不会手动使用 hdfs 命令将 csv 文件复制到 hdfs,然后加载数据。我想将它直接从我的 Windows 机器加载到 Hive 表。
com.cloudera.hiveserver2.support.exceptions.ErrorException
编译语句时出错:FAILED: SemanticException [Error 10028]: Line 1:23 Path is not legal
我正在使用下面的代码来加载数据。
query="""LOAD DATA LOCAL INPATH 'C:/Users/Docs/file.csv' INTO TABLE default.logstable"""
conn = getConnection()
curr = conn.cursor()
curr.execute(query)
连接已设置,选择查询工作正常。
C:/
不是合法的 Unix 文件路径。
你必须使用
file://c:/Users/Docs/file.csv
否则,可以,将 CSV 直接上传到 HDFS,然后在其上定义
EXTERNAL TABLE
。