0

我想知道是否可以使用 java 解决方案将文本文件转换为要在 Hive 中使用的 ORC 文件。

我们不想使用配置单元查询来转换它。有什么建议么?

4

1 回答 1

0

要编写 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

于 2016-07-15T14:57:01.657 回答