我正在尝试使用
上提到的orc工具转换JSON文件https://orc.apache.org/docs/tools.html#java-orc-tools
我已经在我的pom.xml
中导入了此内容<dependency>
<groupId>org.apache.orc</groupId>
<artifactId>orc-tools</artifactId>
<version>1.3.1</version>
</dependency>
但是,在导入之后,我无法看到/导入类org.apache.orc.tools.json.json.jsonschemafinder,用于从JSON文件中推断该架构。
在此提交中可以看到使用上类的示例。https://github.com/apache/orc/pull/95/commits/2ee0be7e60e77777774110ba1babfa2a2a8e93f3f
我在这里使用错误的罐子吗?
这是计划在1.4.0版本的ORC中发布的。当前版本1.3.x不包括这些功能。
您仍然可以将ORC GIT分支机构复制,复制org.apache.orc.tools.convert和org.apache.orc.tools.json到您的回购并使用这些功能。另外,您也可以从兽人回购中制作一个罐子并使用它。
public static void main(Configuration conf,
String[] args) throws IOException, ParseException {
CommandLine opts = parseOptions(args);
TypeDescription schema;
if (opts.hasOption('s')) {
schema = TypeDescription.fromString(opts.getOptionValue('s'));
} else {
schema = computeSchema(opts.getArgs());
}
String outFilename = opts.hasOption('o')
? opts.getOptionValue('o') : "output.orc";
Writer writer = OrcFile.createWriter(new Path(outFilename),
OrcFile.writerOptions(conf).setSchema(schema));
VectorizedRowBatch batch = schema.createRowBatch();
for (String file: opts.getArgs()) {
System.err.println("Processing " + file);
RecordReader reader = new JsonReader(new Path(file), schema, conf);
while (reader.nextBatch(batch)) {
writer.addRowBatch(batch);
}
reader.close();
}
writer.close();
}