通过 JDBC 将文件加载到 hive

Posted

技术标签:

【中文标题】通过 JDBC 将文件加载到 hive【英文标题】:Loading files into hive through JDBC 【发布时间】:2012-09-13 05:40:59 【问题描述】:

我在尝试通过其 JDBC 驱动程序将文件加载到 Hive 时收到此错误。 Hive 实例在 vm 上运行。当我通过 hive 命令行加载文件时,该文件加载得非常好。该文件与 Hive 位于同一实例上。希望jdbc支持load命令。

java.sql.SQLException:查询返回非零代码:10,原因:FAILED:语义分析错误:第 1:23 行无效路径“/home/cloudera/Desktop/test.csv”:无文件匹配路径文件:/home/cloudera/Desktop/test.csv 在 org.apache.hadoop.hive.jdbc.HiveStatement.executeQuery(HiveStatement.java:189) 在 Main.main(Main.java:55)

【问题讨论】:

你能分享一下你的说法吗? 【参考方案1】:

由于 hive 依次运行在 map/reduce 环境中,因此用户在使用 hive jdbc 时需要为 csv 文件提供 hdfs 路径(不是本地路径)。在使用 hive cli 运行时,它采用本地路径,因为它负责将文件上传到 hdfs 以加载到表中。

【讨论】:

以上是关于通过 JDBC 将文件加载到 hive的主要内容,如果未能解决你的问题,请参考以下文章

通过 Knox 获取到 Hive 的 JDBC 连接时出错

kylin2.3版本启用jdbc数据源(可以直接通过sql生成hive表,省去手动导数据到hive,并建hive表的麻烦)

如何通过 JDBC 将 Java 存储过程加载到 Oracle 10g 中?

如何从Oracle到hive

Hive:将hdfs中的gziped CSV作为只读加载到表中

通过 jdbc 客户端使用 hive udf 时出现奇怪的错误