sparkle-0.7.3: src/Control/Distributed/Spark/SQL/SparkSession.hs
{-# LANGUAGE DataKinds #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE GeneralizedNewtypeDeriving #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE QuasiQuotes #-}
{-# LANGUAGE ScopedTypeVariables #-}
{-# LANGUAGE UndecidableInstances #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
{-# OPTIONS_GHC -fplugin=Language.Java.Inline.Plugin #-}
module Control.Distributed.Spark.SQL.SparkSession where
import Control.Distributed.Spark.Context
import Language.Java
import Language.Java.Inline (java)
newtype SparkSession =
SparkSession (J ('Class "org.apache.spark.sql.SparkSession"))
deriving Coercible
newtype Builder =
Builder (J ('Class "org.apache.spark.sql.SparkSession$Builder"))
deriving Coercible
builder :: IO Builder
builder = [java| org.apache.spark.sql.SparkSession.builder() |]
config :: Builder -> SparkConf -> IO Builder
config b sc = [java| $b.config($sc) |]
sparkContext :: SparkSession -> IO SparkContext
sparkContext ss =
[java| new org.apache.spark.api.java.JavaSparkContext($ss.sparkContext()) |]
getOrCreate :: Builder -> IO SparkSession
getOrCreate b = [java| $b.getOrCreate() |]