我创建了一个像这样的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但没有改变:(