求一个简单的示例,flink写orc格式文件,对于Map复杂类型的写法。

classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

求一个简单的示例,flink写orc格式文件,对于Map复杂类型的写法。

nobleyd
目前通过自定义OrcBulkWriterFactory方式,拿到一个一个的ColumnVector,然后设置值。
对于简单类型,API看起来很清晰,但是Map类型没看懂怎么写。如下,对于serverTime是INT类型,直接设置vector[rowId]即可。那么对于MapColumnVector怎么设置呢,将多个key-value对写进去具体怎么写呢。

serverTimeColumnVector.vector[rowId] = ele.getTimestamp();

MapColumnVector dColumnVector = (MapColumnVector) batch.cols[2];
Reply | Threaded
Open this post in threaded view
|

Re: 求一个简单的示例,flink写orc格式文件,对于Map复杂类型的写法。

Kezhu Wang
https://github.com/apache/iceberg/blob/master/flink/src/main/java/org/apache/iceberg/flink/data/FlinkOrcWriters.java#L259


On January 23, 2021 at 13:49:23, 赵一旦 ([hidden email]) wrote:

目前通过自定义OrcBulkWriterFactory方式,拿到一个一个的ColumnVector,然后设置值。
对于简单类型,API看起来很清晰,但是Map类型没看懂怎么写。如下,对于serverTime是INT类型,直接设置vector[rowId]即可。那么对于MapColumnVector怎么设置呢,将多个key-value对写进去具体怎么写呢。


serverTimeColumnVector.vector[rowId] = ele.getTimestamp();

MapColumnVector dColumnVector = (MapColumnVector) batch.cols[2];
Reply | Threaded
Open this post in threaded view
|

Re: 求一个简单的示例,flink写orc格式文件,对于Map复杂类型的写法。

nobleyd
非常感谢,这个封装真好,直接整个类都可以拿来用了。

Kezhu Wang <[hidden email]> 于2021年1月23日周六 下午6:00写道:

>
> https://github.com/apache/iceberg/blob/master/flink/src/main/java/org/apache/iceberg/flink/data/FlinkOrcWriters.java#L259
>
>
> On January 23, 2021 at 13:49:23, 赵一旦 ([hidden email]) wrote:
>
> 目前通过自定义OrcBulkWriterFactory方式,拿到一个一个的ColumnVector,然后设置值。
>
> 对于简单类型,API看起来很清晰,但是Map类型没看懂怎么写。如下,对于serverTime是INT类型,直接设置vector[rowId]即可。那么对于MapColumnVector怎么设置呢,将多个key-value对写进去具体怎么写呢。
>
>
> serverTimeColumnVector.vector[rowId] = ele.getTimestamp();
>
> MapColumnVector dColumnVector = (MapColumnVector) batch.cols[2];
>