You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by "Henri Saksi (Jira)" <ji...@apache.org> on 2026/10/02 12:53:00 UTC

[jira] [Commented] (NIFI-16074) PutIcebergRecord missing convertors

    [ https://issues.apache.org/jira/browse/NIFI-16074?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18121965#comment-18121965 ] 

Henri Saksi commented on NIFI-16074:
------------------------------------

The timestamp, list and struct parts of this issue were addressed in NIFI-16069 (2.12.0). Byte values are still passed to Iceberg unconverted: writing to a {{binary}} column fails with {{ClassCastException: [Ljava.lang.Object; cannot be cast to java.nio.ByteBuffer}} (seen on 2.12.0 with JsonTreeReader and an Avro {{bytes}} field), and {{fixed}} columns fail similarly. On main (Iceberg 1.12), String values for {{uuid}} columns also fail in the Parquet writer with {{String cannot be cast to UUID}}, unless the reader already provides {{java.util.UUID}} values.

The same conversion is now needed for {{geometry}} and {{geography}} columns: Iceberg 1.12 ([apache/iceberg#16982|https://github.com/apache/iceberg/pull/16982], upgraded in NIFI-16407) writes both from WKB in a {{ByteBuffer}}.

I opened [PR #11749|https://github.com/apache/nifi/pull/11749], which converts {{binary}}, {{fixed}}, {{uuid}}, {{geometry}} and {{geography}} values by the target column type in {{RecordConverter}}, including values nested in structs, lists and maps. Its tests include writing through the Parquet writer to a format-version 3 table with geometry and geography columns. If you'd prefer the geospatial types under a separate issue, I can split them out.


> PutIcebergRecord missing convertors
> -----------------------------------
>
>                 Key: NIFI-16074
>                 URL: https://issues.apache.org/jira/browse/NIFI-16074
>             Project: Apache NiFi
>          Issue Type: Bug
>            Reporter: Nir Yanay
>            Priority: Major
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> The following Iceberg types currently don't appear to be handled correctly: * {{timestampz}}
>  * {{bytes}}
>  * {{list}}
>  * {{struct}}
> None of these have conversion logic implemented, which results in {{ClassCastException}} errors.
> Additionally, the UUID conversion should use {{{}UUID.fromString(){}}}, but it currently doesn't have its own converter, although it does not fail like the others.
>  
> I opened a PR:
> [https://github.com/apache/nifi/pull/11423]



--
This message was sent by Atlassian Jira
(v8.20.10#820010)