Skip to content

Cannot write to local filesystem #299

@kevinjqliu

Description

@kevinjqliu

Apache Iceberg version

main (development)

Please describe the bug 🐞

Pulling this issue out of #289

In #289, it was discovered that the library cannot write to the Local Filesystem, such as the /tmp/warehouse/ directory.

This is due to the subtle discrepancy between the S3FileSystem and the LocalFilesystem.
S3FileSystem allows writes to arbitrary "path" since it is a blob store.
LocalFilesystem requires the path to be created first before writes can happen.

For example:
In S3, writing to s3://blah/a/b/c/file.txt is allowed even when the parent directory s3://blah/a/b/c/ does not yet exist at the time of writing.
In the local filesystem, writing to /blah/a/b/c/file.txt will fail if the parent directory /blah/a/b/c/ does not yet exist.

This issue is also present when writing data files and metadata files that require subdirectories to exist first, such as
{warehouse}/data/blah.parquet and {warehouse}/metadata/blah.metadata

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions