分享

hive导入数据时怎么匹配分隔符问题

       hive 的内部分隔符是“ /001 ”,即在load data时,如果被读取的文件中,属性之间分隔符为'\001',是可以被hive识别并load到表格中的。       但是,在一些日志文件中,属性之间存在特殊分隔符,比如像“ @$_$@ ”这样的分隔符是不能被支持。

解决办法:
               a) 通过 SerDe(serialize/deserialize) 进行正则项匹配
               b)    自定义 outputformat inputformat
问题:
         我想请问方法b中这个inputformat该怎么改写呢??
         网上的教程都比较简略,比如下图。我想知道的是,该用java继承哪些类和接口?然后改写哪些方法呢?

改写inputformat

改写inputformat

已有(2)人评论

跳转到指定楼层
NEOGX 发表于 2015-7-23 15:39:51
虽然不太清楚,但是应该通过环境就能知道引用了是哪个包和类以及接口。
在没有环境的情况下,我们也是知道的。
比如定义一个类
class A extends inputformat
{}
输出也是一样的。
楼主可以验证下

回复

使用道具 举报

fullmetal 发表于 2015-7-24 09:33:26
问题是我按截图中来,新建了一个继承inputformat的类,但是里面居然只有nextkeyvalue方法,没有next方法。我的hive版本是0.98的,不知道是不是版本的关系。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条