将数据插入 HIVE 表时出错

Posted

技术标签:

【中文标题】将数据插入 HIVE 表时出错【英文标题】:Error while inserting data into a HIVE table 【发布时间】:2013-11-24 03:27:34 【问题描述】:

我正在尝试将“制表符分隔文件”中的一些数据插入到已经创建的 HIVE 表中。我在名为“users”的 HIVE 表中创建了 4 个基本列。我正在使用以下命令:

load data local inpath 'D:\users.txt'
into table users;

运行上述命令后,我收到以下错误消息:

FAILED: SemanticException [Error 10028]: Line 1:23 Path is not legal ''D:\users.txt'': Source file system should be "file" if "local" is specified

我正在使用 Windows 7 并通过 PUTTY 在 Amazon Web Services 上运行 HIVE。 任何帮助将不胜感激。

TIA

【问题讨论】:

我不确定这在 Windows 中是如何工作的。但看起来你必须提供 file:///D://users.txt sonic 是对的:java 使用 '/' 作为文件分隔符,而不是类似于 windows 的 '\' 无论如何,您不能直接从本地计算机加载文件以在 AWS 上配置 Hive。 local 关键字表示在服务器上本地运行 hive 与来自 hdfs 的文件。将文件复制到服务器(例如使用 winscp),然后使用服务器中的本地路径发出 load 命令 感谢您的回答。我不得不将代码复制到服务器并且代码有效。虽然,在插入文本文件中的值时,HIVE 中的表只接受所有 NULL 值。对此有任何想法吗? 【参考方案1】:

最后,如果有人试图从制表符分隔的文本文件中向表中添加值,以下命令应该可以工作:

hive> create table test_table(k string, v string) row format delimited fields terminated by '\t' stored as textfile;

【讨论】:

将制表符分隔的文件复制到服务器后,上述命令将起作用。我使用 WinSCP 做到了这一点。

以上是关于将数据插入 HIVE 表时出错的主要内容,如果未能解决你的问题,请参考以下文章

Pyspark - 将数据保存到 Hive 表时出错“未解析的运算符'InsertIntoTable HiveTableRelation'”

将数据从 CSV 文件映射到 HDFS 上的 Hive 表时出错

尝试将 pig 输出存储到 Hive 表时出错

通过 PHP 将数据插入 MySQL 表时出错

尝试将数据插入多个表时出错 [C# Winform SQL Server] [关闭]

从 PySpark 查询 Hive 表时出错