AXS: A Framework for Fast Astronomical Data Processing Based on Apache Spark - Ze evi, Petar; Slater, Colin T.; Juri, Mario; Connolly, Andrew J.; Lon ari, Sven; Bellm, Eric C.; Golkhou, V. Zach; Suberlak, Krzysztof (The Astronomical journal, 2019)
We introduce AXS (Astronomy eXtensions for Spark), a scalable open-source astronomical data analysis framework built on Apache Spark, a widely used industry-standard engine for big-data processing. Building on capabilities present in Spark, AXS aims to enable querying and analyzing almost arbitrarily large astronomical catalogs using familiar Python/AstroPy concepts, DataFrame APIs, and SQL statements. We achieve this by (i) adding support to Spark for efficient on-line positional cross-matching and (ii) supplying a Python library supporting commonly used operations for astronomical data analysis. To support scalable cross-matching, we develop a variant of the ZONES algorithm capable of operating in distributed, shared-nothing architecture. We couple this to a data partitioning scheme that enables fast catalog cross-matching and handles the data skew often present in deep all-sky data sets. The cross-match and other often-used functionalities are exposed to the end users through an easy-to-use Python API. We demonstrate AXS's technical and scientific performance on Sloan Digital Sky Survey, Zwicky Transient Facility, Gaia DR2, and AllWise catalogs. Using AXS we were able to perform on-the-fly cross-match of Gaia DR2 (1.8 billion rows) and AllWise (900 million rows) data sets in ∼30 s. We discuss how cloud-ready distributed systems like AXS provide a natural way to enable comprehensive end-user analyses of large data sets such as the Large Synoptic Survey Telescope.