我尝试使用以下命令在配置单元中创建表:
CREATE TABLE apple (dates STRING, open INT, high INT, low INT, close INT, adj_close DECIMAL, vol INT) row format delimited fields terminated by ',' lines terminated by '\n' tblproperties ("skip.header.line.count"="1");**
然后我尝试使用以下命令加载数据:
LOAD DATA INPATH '/user/root/stockdata/APPL.csv' OVERWRITE INTO TABLE apple;
文件appl.csv存储在hdfs中
执行上述操作导致以下错误:
错误:编译语句时出错:失败:semanticexception无法将数据加载到目标表。错误:您尝试加载的文件与目标表的文件格式不匹配(州=42000,代码=40000)
有人能帮忙解决这个问题吗?
3条答案
按热度按时间xwmevbvl1#
您可以通过多种方式将数据加载到表中!!但要确保表格式是有效的。
首先将特定表放入表位置。
语法:hadoop fs-put source\u path destination\u hive\u table\u location
例如:hadoop fs-put appl.csv/user/test.db/apple/appl.csv
一旦文件进入hadoop文件系统,我们就可以通过hive控制台中的load命令将文件加载到表中
将路径“/user/test.db/apple/appl.csv”中的数据加载到表apple中;
ps:您正在加载csv数据。因此请确保表具有正确的文本输入和输出文件格式。
tvz2xvvm2#
也许这与创建表有关,我遇到了相同的错误,我通过在创建表的配置单元查询的末尾添加“存储为textfile”来解决它
早些时候我的table
现在是了
希望有帮助:)
yzuktlbb3#
将文件直接放入表位置。
用表位置替换目标位置。你可以使用
DESCRIBE FORMATTED tablename
.