将存放在excel表中的数据如何导入到hive中,首先前提是excel表中数据类型以及长度要和hive仓库中表的字段属性一致,否则会报异常。其次因为建表的时候,已经定义了表的分割符号(row format delimited fields terminated by ‘,’),所以不能直接将excel表格中数据导入的hive仓库中。处理方式如下:
先将excel表中数据另存转化为data.csv格式,转化为.csv格式的文件默认就是用“,”进行分割的,可以用notepad++打开data.csv格式查看。然后再讲数据导入到hive仓库中即可。但是执行如下导入语句时,发现报错,显示Wrong file format。
检查以后发现,因为在创建表格时,使用的是RCFILE存储格式
STORED AS INPUTFORMAT 'org.apache.hadoop.hive.ql.io.RCFileInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.RCFileOutputFormat'
而导入到是TextFile文件格式,所以报错,解决办法建表的格式默认使用TextFile格式即可。
如何将文件转化为rcfile文件格式:
(1)hive 中直接 通过textfile表进行insert转换,比如通过如下将textfile数据导入到rcfile中。
insert overwrite table http_RCTable partition(dt='2013-09-30') select p_id,tm,idate,phone from tmp_testp where dt='2013-09-30';
(2)使用mapreduce将普通的文件压缩成RCFile,并且再读取RCFile文件。