【发布时间】:2015-10-20 23:31:24
【问题描述】:
我使用 SerDe 来处理我的 XML 数据,并在其中为 XML 数据创建自定义 InputFormat 和 RecordRedaer。
以下是类的签名 -
SerDe 类 -
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();
}
RecordReader -
public class XMLRecordReader extends RecordReader<LongWritable, BookWritable> {
BookWritable 是我创建的自定义 Writable 类。
现在当我如下使用这个 serde 时 -
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'
请提出建议。 阿杰
【问题讨论】:
-
任何帮助请...
标签: hadoop hive user-defined-functions