Learn how to transparently and effectively leverage NVIDIA GPUs from your Spark program on Apache Spark. We'll provide an overview on how common programmers can leverage GPUs on Apache Spark using our two approaches. One is that a Ninja programmer provides an optimized GPU kernel to develop Spark libraries, which is implemented as a drop-in module to Spark. This allows common programmers to transparently use GPUs by calling these libraries. The other is that enhanced Spark runtime transparently generates GPU code from a Spark program. Our two approaches use the following two components for ease of leveraging GPUs and for achieving high performance. One component is a GPU driver for managing GPU devices, performing data copy, and launching GPU kernels. The other is column-oriented data structure for Spark's data structures, which is suitable for GPU. See experimental results on acceleration of Spark Applications with two approaches using NVIDIA GPUs.