从Hive

时间:2015-08-03 14:50:41

标签: hadoop mapreduce hive hiveql

我创建了一个像这样的Hive表

CREATE TABLE SpaceWalk (astronaut String, timeSpent int) 
COMMENT 'Extra Vehicular Activity Done By Astronauts' 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
STORED AS SEQUENCEFILE 
LOCATION '/user/hive/warehouse/NASA';

我使用序列文件(这是mapreduce作业的输出)加载了表,该文件分别具有Text-IntWritable格式的键值对。

LOAD DATA LOCAL INPATH '/home/srimanth/HiveSeq.data' OVERWRITE INTO TABLE SpaceWalk;

在hdfs中,文件存在于我在创建表时指定的位置。但是当我尝试读取数据时,我得到了ClassCastException。

hive> SELECT * FROM SpaceWalk;
OK
Failed with exception java.io.IOException:java.lang.ClassCastException: org.apache.hadoop.io.IntWritable cannot be cast to org.apache.hadoop.io.BinaryComparable
Time taken: 0.354 seconds

当我从hdfs查看时,sequnce文件正确显示键和值。

anil@srimanthpc:~$ hdfs dfs -text /user/hive/warehouse/NASA/HiveSeq.data
15/08/03 20:05:25 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Akihiko Hoshide 1283
Al Worden   39
Alan Shepard    567
Aleksei Yeliseyov   37
Alexander Kaleri    1318
Alexander Misurkin  394
Alexander Samokutyaev   383

并且还有100多个键值对,我没有在这里显示。

我感谢一些帮助。谢谢。

编辑:我给了' \ 011'对于FILEDS TERMINATED BY但没有改变:(

0 个答案:

没有答案