How to efficiently cluster nodes using GDS with limited memory (16 GB RAM)

I’m running into memory issues while trying to project a graph and cluster nodes using the GDS library in Neo4j. Here's the query I’m using:

CALL gds.graph.project(
    'myGraph',
    'Address',
    {
        CONNECTED_TO: {
            orientation: 'UNDIRECTED'  // This indicates that the relationship is bidirectional
        }
    }
)

However, I receive the following error:

Failed to invoke procedure gds.graph.project: Caused by: java.lang.IllegalStateException: Procedure was blocked since minimum estimated memory (52 GiB) exceeds current free memory (5120 MiB).

The main goal is to generate cluster IDs for nodes after grouping addresses. My Address nodes currently only contain the address property, and I want to add a clusterId property to store the cluster information.

To achieve this, I’m trying to run the following Louvain algorithm:

CALL gds.louvain.write('myGraph', {
    write property: 'clusterId' // The property where cluster IDs will be stored
})

But since this process requires 52 GB of memory, and I’m working with a system that has only 16 GB of RAM, I’m looking for alternative approaches that would allow me to perform clustering without exceeding memory limits.

Are there any memory-efficient strategies or ways to chunk the data to allow clustering on a lower-memory system? Any insights would be appreciated!