> For the complete documentation index, see [llms.txt](https://docs.zingg.ai/zingg/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.zingg.ai/zingg/running-zingg/install-zingg.md).

# Install Zingg

Install Zingg on your platform - Community and Enterprise editions across Spark and notebook environments

Zingg runs on Spark (all editions) or Snowflake (Enterprise only). Select your platform from the tabs below. Each tab covers both Community and Enterprise where applicable.

### Prerequisites

The following prerequisites apply to local and self-managed Spark installations only. Managed Spark services such as Databricks, Fabric, EMR, and Dataproc handle the Spark runtime for you - you only need to install the Zingg library on those platforms.

* Java: JDK version 11.0.23 or compatible
* Spark: version 3.5.2 or compatible

{% tabs %}
{% tab title="Notebook Environments" %}

### **Step 1: Install Zingg Jar on your Spark cluster**

The steps for installing a jar on your Spark cluster will vary based on the platform. Please refer to the platform guide or Zingg Platform specific guides for the steps.

### **Step 2: Install Zingg Python Packages**

#### **Community**

```bash
%pip install zingg
```

#### Enterprise

```bash
%pip install zinggEC
%pip install zinggES
```

Install the required `tabulate` dependency (all editions):

```bash
%pip install tabulate
```

Restart the Python kernel: **Runtime → Restart Python**.

#### **Verify the installation**

```bash
%pip show zingg
%pip show zinggEC
%pip show zinggES

```

{% endtab %}

{% tab title="Local Spark" %}
{% hint style="success" icon="right-long" %}
[Docker](/zingg/running-zingg/quick-start-docker.md) is the fastest way to get started locally. Use installing from release if you need a specific Spark version or want to integrate with an existing Spark installation.
{% endhint %}

### Installing from Release

Download the latest release from GitHub: [`github.com/zinggAI/zingg/releases`](https://github.com/zinggAI/zingg/releases)

**Example for Zingg 0.7.0 on Spark 3.5.2**

**Prerequisites**: Java JDK 11.0.23, Spark 3.5.2

```bash
wget https://github.com/zinggAI/zingg/releases/download/v0.7.0/zingg-0.7.0-spark-3.5.5.tar.gz

tar -xvf zingg-0.7.0-spark-3.5.5.tar.gz
```

### Set up environment variables

Add the following to `~/.bash_aliases` (Linux) or `~/.zshrc` (macOS):

```bash
export JAVA_HOME=<path to jdk>
export SPARK_HOME=<path to Apache Spark>
export SPARK_MASTER=local[*]
export ZINGG_HOME=<path to zingg>
export PATH=$PATH:$JAVA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$ZINGG_HOME/scripts
```

Also verify that your machine's IP is added to `/etc/hosts` for localhost. Run `ifconfig` to find the IP and add it.

#### Verify your installation

Run bash and print the aliases to confirm they are set correctly:

```bash
echo $SPARK_HOME
echo $JAVA_HOME
java --version
echo $ZINGG_HOME
```

Then run a sample program to confirm the installation works:

```bash
cd zingg
./scripts/zingg.sh --phase trainMatch --conf examples/febrl/config.json
```

This builds Zingg models and finds duplicates in `examples/febrl/test.csv`. You will see Zingg logs on the console and output files under `/tmp/zinggOutput` with matching records sharing the same cluster ID. If you see this, Zingg is correctly installed.
{% endtab %}

{% tab title="Snowflake (ENT)" %}
{% hint style="info" icon="right-long" %}
Enterprise only. Zingg Enterprise on Snowflake uses the Snowflake Container Application package and runs natively inside Snowflake using Snowpark — no Spark cluster required.
{% endhint %}

**Create the connection properties**

{% code title="snowEnv.txt" overflow="wrap" %}

```bash
URL={snowflake_url}
USER={snowflake_user_name}
PASSWORD={snowflake_password}
ROLE={role}
WAREHOUSE={warehouse}
DB={database_name}
SCHEMA={schema}
CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY=900
```

{% endcode %}

`CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY` is the number of seconds between client attempts to update the session token. Valid range: 900 to 3600.

### **Verify the installation**

{% code title="Verify installation" overflow="wrap" expandable="true" %}

```bash
EXECUTE JOB SERVICE
IN COMPUTE POOL ZINGG_POOL
NAME = ZINGG_MATCH
ASYNC = true
EXTERNAL_ACCESS_INTEGRATIONS = (ALLOW_ALL_EAI)
FROM @specs SPECIFICATION_TEMPLATE_FILE='zingg-job.yaml'
USING (PHASE => 'match', CONFIG => 'febrlConfig.json');
```

{% endcode %}

This will run Zingg febrl example and produce tables named `UNIFIED_CUSTOMERS` with matching records sharing the same Zingg ID.

Congratulations, Zingg Enterprise for Snowflake is installed.
{% endtab %}
{% endtabs %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.zingg.ai/zingg/running-zingg/install-zingg.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
