Skip to content

Cannot write to local filesystem #299

Closed
@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

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions