Mount

Contents

Mount#

PyXet allows you to perform a filesystem mount of any version of any Xet repository allowing you to immediately access TBs of data anywhere without having to download everything.

This lets you use any tool that works with local files, but with data stored in XetHub. This is perfect for exploring larger images and text files, as well as SQLite and Parquet databases.

To mount:

xet mount xet://<username>/<repo>/<branch> <local_path>

On windows, the local_path must be a drive letter. For instance X:

For instance, you can mount the Flickr30k dataset with:

xet mount xet://XetHub/Flickr30k/main Flickr30k

And you will be able to browse to it and explore its contents.

Prefetch#

As a slightly larger example, you can mount the Laion400M metadata (54GB) with

xet mount --prefetch 0 xet://XetHub/LAION-400M/main LAION400M 
cd LAION400M

which provides a collection of Parquet files which you can query easily with duckdb. For instance:

import duckdb
# count the number of rows
duckdb.query("select COUNT(*) from 'data/*.parquet'")
# See the distribution of licenses
duckdb.query("select LICENSE, count() as COUNT from 'data/*.parquet' 
        group by LICENSE order by COUNT desc").df()

The prefetch argument allows you to tune between random access and continuous streaming of files (for instance if you are doing ML training, or need to quickly download large files). prefetch=0 is good for random access such as for duckdb queries, or for SQLite queries. The default prefetch value of 32 is good for bulk file access.

Many More#

Go to XetHub’s explore page to find more datasets and models you can mount and explore right away!