我想知道是否可以使用 java 解决方案将文本文件转换为要在 Hive 中使用的 ORC 文件。
我们不想使用配置单元查询来转换它。有什么建议么?
要编写 ORC 文件,您需要定义架构并创建具有所需文件名的 Writer。此示例设置了所需的架构参数,但还有许多其他选项可以控制 ORC 编写器。
TypeDescription schema = TypeDescription.fromString("struct<x:int,y:int>");
Writer writer = OrcFile.createWriter(new Path("my-file.orc"),
OrcFile.writerOptions(conf)
.schema(schema));
现在您需要创建一个行批处理,设置数据,并在批处理填满时将其写入文件。文件完成后,关闭 Writer。
VectorizedRowBatch batch = schema.createRowBatch();
LongColumnVector x = (LongColumnVector) batch.cols[0];
LongColumnVector y = (LongColumnVector) batch.cols[1];
for(int r=0; r < 10000; ++r) {
int row = batch.size++;
x.vector[row] = r;
y.vector[row] = r * 3;
// If the batch is full, write it out and start over.
if (batch.size == batch.getMaxSize()) {
writer.addRowBatch(batch);
batch.reset();
}
}
writer.close();
有关 ORC 网站的更多详细信息:https ://orc.apache.org/docs/core-java.html#writing-orc-files