For existing tables that use name-based column resolution, you can add a
name-to-id mapping that is applied when reading files with no field IDs.
There is a utility to generate the name mapping from an existing schema
(using the current names) and then you just need to store that in a table
property.

NameMapping mapping = MappingUtil.create(table.schema());
table.updateProperties()
    .set("schema.name-mapping.default", NameMappingParser.toJson(mapping))
    .commit()

I think there is also an issue to add a name mapping by default when
importing data.

On Fri, Oct 30, 2020 at 3:46 PM Kruger, Scott <sckru...@paypal.com.invalid>
wrote:

> I’m looking to migrate a partitioned parquet table to use iceberg. The
> issue I’ve run into is that the column order for the data varies wildly,
> which isn’t a problem for us normally (we just set mergeSchemas=true when
> reading), but presents a problem with iceberg because the iceberg.schema
> field isn’t set in the parquet footer. Is there any way to migrate this
> data over without rewriting the entire dataset?
>


-- 
Ryan Blue
Software Engineer
Netflix

Reply via email to