You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@parquet.apache.org by "Cheng Lian (JIRA)" <ji...@apache.org> on 2015/04/04 15:41:33 UTC
[jira] [Comment Edited] (PARQUET-194) Provide callback to allow
user defined key-value metadata merging strategy
[ https://issues.apache.org/jira/browse/PARQUET-194?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14395722#comment-14395722 ]
Cheng Lian edited comment on PARQUET-194 at 4/4/15 1:41 PM:
------------------------------------------------------------
[~rdblue] After double thinking about this, I think providing such a callback is still useful. Because we also need to merge user defined key-value metadata in {{ParquetOutputCommitter}} for writing summary files. Currently, if any conflicting user defined key-value pair is found, Parquet simply throws an exception and gives up writing the summary file.
I noticed that in PARQUET-179, Parquet developers tried to retire both {{_metadata}} and {{_common_metadata}} at first, but later on decided to keep {{_common_metadata}} for frameworks and tools like Pig, where no centralized schema management service is available.
was (Author: lian cheng):
After double thinking about this, I think providing such a callback is still useful. Because we also need to merge user defined key-value metadata in {{ParquetOutputCommitter}} for writing summary files. Currently, if any conflicting user defined key-value pair is found, Parquet simply throws an exception and gives up writing the summary file.
I noticed that in PARQUET-179, Parquet developers tried to retire both {{_metadata}} and {{_common_metadata}} at first, but later on decided to keep {{_common_metadata}} for frameworks and tools like Pig, where no centralized schema management service is available.
> Provide callback to allow user defined key-value metadata merging strategy
> --------------------------------------------------------------------------
>
> Key: PARQUET-194
> URL: https://issues.apache.org/jira/browse/PARQUET-194
> Project: Parquet
> Issue Type: Improvement
> Components: parquet-mr
> Affects Versions: 1.6.0
> Reporter: Cheng Lian
>
> When merging footers, Parquet doesn't know how to merge conflicting user defined key-value metadata entries, and simply throws. It would be better to provide callbacks to let users define metadata merging strategies.
> For example, in Spark SQL, we store our own schema information in Parquet files as key-value metadata (similar to parquet-avro). While trying to add schema merging support for reading Parquet files with different but compatible schemas, {{InitContext.getMergedKeyValueMetaData}} throws because we have different Spark SQL schemas stored in different Parquet data files. Thus, we have to overwrite {{ParquetInputFormat}} and merge the schema within {{getSplits}}, which is kinda hacky and inconvenient.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)