A linear algebra-based programming interface for graph computations in Scala and spark
Abstract
Graph-based algorithms play a crucial role in workflows for analyzing large datasets in domains such as social networks, biology, fraud detection, and sentiment analysis. There are two approaches for incorporating graph-based algorithms into these workflows. One approach is to integrate the graph algorithms into a workflow residing in a single system. The other approach is to use separate systems for data analytics and graph analytics. In this paper we investigate the former approach. Specifically, we propose integrating linear algebrabased graph algorithms into the Spark platform.We first examine the expression of semirings in Scala. We then examine a Scalabased, GraphBLAS-like programming interface that builds on this semiring expression. Finally, to demonstrate the power of the approach we use the interface to implement two variations of the Bellman-Ford algorithm.