In this presentation, we are going to talk about the state of the art infrastructure we have established at Walmart Labs for the Search product using Spark Streaming and DataFrames. First, we have been able to successfully use multiple micro batch spark streaming pipelines to update and process information like product availability, pick up today etc. along with updating our product catalog information in our search index to up to 10,000 kafka events per sec in near real-time. Earlier, all the product catalog changes in the index had a 24 hour delay, using Spark Streaming we have made it possible to see these changes in near real-time. This addition has provided a great boost to the business by giving the end-costumers instant access to features likes availability of a product, store pick up, etc.
Second, we have built a scalable anomaly detection framework purely using Spark Data Frames that is being used by our data pipelines to detect abnormality in search data. Anomaly detection is an important problem not only in the search domain but also many domains such as performance monitoring, fraud detection, etc. During this, we realized that not only are Spark DataFrames able to process information faster but also are more flexible to work with. One could write hive like queries, pig like code, UDFs, UDAFs, python like code etc. all at the same place very easily and can build DataFrame template which can be used and reused by multiple teams effectively. We believe that if implemented correctly Spark Data Frames can potentially replace hive/pig in big data space and have the potential of becoming unified data language.
We conclude that Spark Streaming and Data Frames are the key to processing extremely large streams of data in real-time with ease of use.
Yan Zheng is a Director of Engineering at WalmartLabs, overseeing search platform area which includes both search runtime as well as big data platform. He has 15 years of industry experience of developing and delivering of software products using a wide variety of technologies in all phases of product life cycle. He received his B.S. degree from Tsinghua University, China and 2 M.S. degrees from University of California, San Diego, and San Diego State University respectively.
Nirmal Sharma is principle software engineer at WalmartLabs, leading big data team and is responsible for large-scale distributed systems, databases and algorithms. Prior to this he worked as data engineer in NETFLIX where he was responsible for building scalable data pipelines and tools using hadoop and related technological stacks. He has total 11 yrs of experience implementing, architecting and supporting large data platforms using distributed systems (hadoop, hive, pig, Spark, various file systems, MPP systems and various other open source technologies), MPP systems, algorithms and databases. He holds a B.Tech degree from IIT, Varanasi, India.