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)