Running from Docker image from Docker hub

The easiest way to get started is pulling the Docker image with the last release of Zingg.

docker pull zingg/zingg:0.3.3
docker run -it zingg/zingg:0.3.3 bash

Detailed help instructions for working with the Zingg docker image can be found here.


Zingg runs on Spark and can be used on all major Spark distributions. Zingg can run on all major Linux flavours.

Zingg is prebuilt for common Spark versions so you can use those directly. The following document assumes that we are installing Zingg 0.3 on Spark 3.1.2, but you can follow the same process for other versions too


A) Java JDK - version "1.8.0_131"

B) Apache Spark - version spark-3.1.2-bin-hadoop3.2

Prerequisites for running Zingg on single machine without setting up a Spark cluster

(Good for a few million records) A) Install the specified JDK version

B) Apache Spark - Download the specified version from and unzip it at a folder under home

Please add the following entries to ~/.bash_aliases

export JAVA_HOME=path to jdk

export SPARK_HOME=path to location of Apache Spark

export SPARK_MASTER=local[*]

C) Correct entry of host under /etc/hosts

Run ifconfig to find the ip of the machine and make sure it is added to the /etc/hosts for localhost

Prerequisites for running Zingg on a Spark cluster

If you have a ready Spark cluster, you can run Zingg by configuring the following environment on your driver machine

export JAVA_HOME=path to jdk

export SPARK_HOME=path to Apache Spark

export SPARK_MASTER=spark://master-host:master-port

Installation Steps

Download the tar zingg-version.tar.gz to a folder of your choice and run the following

gzip -d zingg-0.3.3-SNAPSHOT-bin.tar.gz ; tar xvf zingg-0.3.3-SNAPSHOT-bin.tar

This will create a folder zingg-0.3.1-SNAPSHOT under the chosen folder.

Move the above folder to zingg.

mv zingg-0.3.3-SNAPSHOT-bin ~/zingg

export ZINGG_HOME=path to zingg


Run bash and print the aliases to ensure that they are set correctly.




java --version


Let us now run a sample program to ensure that our installation is correct

cd zingg

./scripts/ --phase match --conf examples/febrl/config.json

The above will find duplicates in the examples/febl/test.csv file. You will see Zingg logs on the console and once the job finishes, you will see some files under /tmp/zinggOutput with matching records sharing the same cluster id.

Congratulations, Zingg has been installed!

Compiling from sources

If you need to compile the latest code or build for a different Spark version, you can clone this repo and

  • Install maven (We are on version 3.3.9)

  • Install JDK 1.8

  • Set JAVA_HOME to JDK base directory

  • Run the following

mvn clean compile package -Dspark=sparkVer

where sparkVer is one of 2.4, 3.0 or 3.1

Last updated