Hadoop hive serde-输入格式必须实现InputFormat
我已经开发了一个SerDe来处理XML数据,并在其中创建了XML数据的自定义InputFormat和RecordRedaer 下面是这些课程的签名- SerDe类-Hadoop hive serde-输入格式必须实现InputFormat,hadoop,hive,user-defined-functions,Hadoop,Hive,User Defined Functions,我已经开发了一个SerDe来处理XML数据,并在其中创建了XML数据的自定义InputFormat和RecordRedaer 下面是这些课程的签名- SerDe类- public class XMLSerde extends AbstractSerDe { 输入格式- public class XMLInputFormat extends FileInputFormat<LongWritable, BookWritable> { @Override public
public class XMLSerde extends AbstractSerDe {
输入格式-
public class XMLInputFormat extends FileInputFormat<LongWritable, BookWritable> {
@Override
public RecordReader<LongWritable, BookWritable> createRecordReader(InputSplit arg0,
TaskAttemptContext arg1) throws IOException, InterruptedException {
// TODO Auto-generated method stub
return new XMLRecordReader();
}
在此表上运行select查询时出现以下错误
FAILED: SemanticException 1:14 Input format must implement InputFormat. Error encountered near token 'books'
请建议。
AJHive仅支持旧的mareduce API。
您应该从org.apache.hadoop.mapred.FileInputFormat类继承XMLInputFormat。不知道它的可读性如何-package com.xml.serde;导入java.io.IOException;导入org.apache.hadoop.io.LongWritable;导入org.apache.hadoop.mapred.FileInputFormat;导入org.apache.hadoop.mapred.JobConf;导入org.apache.hadoop.mapred.Reporter;导入org.apache.hadoop.mapred.*;公共类XMLInputFormat扩展FileInputFormat{@Override public RecordReader getRecordReader InputSplit arg0,JobConf arg1,Reporter arg2抛出IOException{返回新的XMLRecordReaderarg1,FilePlitarg0;}}}XMLRecordReader还必须从旧的MapRecce API实现接口-org.apache.hadoop.mapred.RecordReader.Ya我做到了,在扩展映射的fileinputformat时,这有点像是强制性的……您能显示表创建脚本吗?也可能是您将jar与旧的class.table创建脚本一起使用-创建表booksauthor字符串、title字符串、isbn字符串行格式SERDE'com.xml.SERDE.XMLSerde'存储为INPUTFORMAT'com.xml.SERDE.XMLInputFormat'OUTPUTFORMAT'org.apache.hadoop.hive.ql.io.IgnoreKeyTextOutputFormat';这方面有什么帮助吗。。。
CREATE TABLE xml_items(Author STRING, Title STRING, ISBN STRING) ROW FORMAT SERDE 'com.xml.serde.XMLSerde' STORED AS INPUTFORMAT 'com.xml.serde.XMLInputFormat';
FAILED: SemanticException 1:14 Input format must implement InputFormat. Error encountered near token 'books'