使用 orc-tools 将 JSON 转换为 ORC
Convert JSON to ORC using orc-tools
我正在尝试使用
中提到的 orc 工具 jar 转换 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>
但是,在导入之后,我无法 see/import class org.apache.orc.tools.json.JsonSchemaFinder 用于从 JSON 文件推断模式。
使用上述 class 的示例可以在此提交中看到。
https://github.com/apache/orc/pull/95/commits/2ee0be7e60e7ca77f574110ba1babfa2a8e93f3f
我是不是用错了jar?
这计划在 1.4.0 版本的 ORC 中发布。当前版本 1.3.x 不包含这些功能。
您仍然可以获得 ORC git 分支,将 org.apache.orc.tools.convert 和 org.apache.orc.tools.json 复制到您的存储库并使用这些功能。或者,您也可以从 ORC 存储库制作一个 jar 并使用它。
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();
}
我正在尝试使用
中提到的 orc 工具 jar 转换 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>
但是,在导入之后,我无法 see/import class org.apache.orc.tools.json.JsonSchemaFinder 用于从 JSON 文件推断模式。
使用上述 class 的示例可以在此提交中看到。 https://github.com/apache/orc/pull/95/commits/2ee0be7e60e7ca77f574110ba1babfa2a8e93f3f
我是不是用错了jar?
这计划在 1.4.0 版本的 ORC 中发布。当前版本 1.3.x 不包含这些功能。
您仍然可以获得 ORC git 分支,将 org.apache.orc.tools.convert 和 org.apache.orc.tools.json 复制到您的存储库并使用这些功能。或者,您也可以从 ORC 存储库制作一个 jar 并使用它。
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();
}