[ 
https://issues.apache.org/jira/browse/FLINK-33759?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Cai Liuyang updated FLINK-33759:
--------------------------------
    Description: 
When we use flink-parquet format wirte Map<String, String>[] type (which will 
be read by spark job), we encounter an exception:
{code:java}
// code placeholder
Caused by: org.apache.parquet.io.ParquetEncodingException: empty fields are 
illegal, the field should be ommited completely instead
    at 
org.apache.parquet.io.MessageColumnIO$MessageColumnIORecordConsumer.endField(MessageColumnIO.java:329)
    at 
org.apache.flink.formats.parquet.row.ParquetRowDataWriter$ArrayWriter.writeArrayData(ParquetRowDataWriter.java:438)
    at 
org.apache.flink.formats.parquet.row.ParquetRowDataWriter$ArrayWriter.write(ParquetRowDataWriter.java:419)
    at 
org.apache.flink.formats.parquet.row.ParquetRowDataWriter$RowWriter.write(ParquetRowDataWriter.java:471)
    at 
org.apache.flink.formats.parquet.row.ParquetRowDataWriter.write(ParquetRowDataWriter.java:81)
    at 
org.apache.flink.formats.parquet.row.ParquetRowDataBuilder$ParquetWriteSupport.write(ParquetRowDataBuilder.java:89){code}
after review the code, we found flink-parquet doesn't support write nested 
array or map, because [ArrayWriter|#L437] and [MapWriter|#L391] doesn't impl 
`public void write(ArrayData arrayData, int ordinal) {}` function.

  was:
When we use flink-parquet format wirte Map<String, String>[] type (which will 
be read by spark job), we encounter an exception:
{code:java}
// code placeholder
org.apache.parquet.io.ParquetEncodingException: empty fields are illegal, the 
field should be ommited completely instead {code}
after review the code, we found flink-parquet doesn't support write nested 
array or map, because [ArrayWriter|#L437] and [MapWriter|#L391] doesn't impl 
```public void write(ArrayData arrayData, int ordinal) {}``` function.


> flink parquet writer support write nested array or map type
> -----------------------------------------------------------
>
>                 Key: FLINK-33759
>                 URL: https://issues.apache.org/jira/browse/FLINK-33759
>             Project: Flink
>          Issue Type: Improvement
>          Components: Formats (JSON, Avro, Parquet, ORC, SequenceFile)
>            Reporter: Cai Liuyang
>            Priority: Major
>
> When we use flink-parquet format wirte Map<String, String>[] type (which will 
> be read by spark job), we encounter an exception:
> {code:java}
> // code placeholder
> Caused by: org.apache.parquet.io.ParquetEncodingException: empty fields are 
> illegal, the field should be ommited completely instead
>     at 
> org.apache.parquet.io.MessageColumnIO$MessageColumnIORecordConsumer.endField(MessageColumnIO.java:329)
>     at 
> org.apache.flink.formats.parquet.row.ParquetRowDataWriter$ArrayWriter.writeArrayData(ParquetRowDataWriter.java:438)
>     at 
> org.apache.flink.formats.parquet.row.ParquetRowDataWriter$ArrayWriter.write(ParquetRowDataWriter.java:419)
>     at 
> org.apache.flink.formats.parquet.row.ParquetRowDataWriter$RowWriter.write(ParquetRowDataWriter.java:471)
>     at 
> org.apache.flink.formats.parquet.row.ParquetRowDataWriter.write(ParquetRowDataWriter.java:81)
>     at 
> org.apache.flink.formats.parquet.row.ParquetRowDataBuilder$ParquetWriteSupport.write(ParquetRowDataBuilder.java:89){code}
> after review the code, we found flink-parquet doesn't support write nested 
> array or map, because [ArrayWriter|#L437] and [MapWriter|#L391] doesn't impl 
> `public void write(ArrayData arrayData, int ordinal) {}` function.



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

Reply via email to