将数据插入 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 表时出错