Github user ravipesala commented on a diff in the pull request:
https://github.com/apache/carbondata/pull/1469#discussion_r152582387
--- Diff:
integration/spark2/src/main/scala/org/apache/spark/sql/CarbonSession.scala ---
@@ -42,15 +42,46 @@ class CarbonSession(@transient val sc: SparkContext,
this(sc, None)
}
+
+ // SessionStateCodeGenerateFactory.init(sc.version)
+ // CarbonOptimizerCodeGenerateFactory.init(sc.version)
+ // val carbonDefaultOptimizer =
CarbonOptimizerCodeGenerateFactory.getInstance()
+ // .carbonoptimizerFactory.createCarbonOptimizer()
+ // @transient
+ // override lazy val sessionState: SessionState = new
CarbonSessionState(this)
+
+
+
+ def getSessionState(sparkContext: SparkContext): SessionState = {
+ if (sparkContext.version.contains("2.1")) {
+ val clazz =
Utils.classForName("org.apache.spark.sql.hive.CarbonSessionState")
+ val ctor = clazz.getConstructors.head
+ ctor.setAccessible(true)
+ val sessionState1 = ctor.newInstance(this).asInstanceOf[SessionState]
+ sessionState1
+ } else if (sparkContext.version.contains("2.2")) {
+ val clazz =
Utils.classForName("org.apache.spark.sql.hive.CarbonSessionStateBuilder")
+ val ctor = clazz.getConstructors.head
+ ctor.setAccessible(true)
+ val sessionStateBuilder = ctor.newInstance(this, None)
+ val method = clazz.getMethod("build")
+ val sessionState1: SessionState = method.invoke(sessionStateBuilder)
+ .asInstanceOf[SessionState]
--- End diff --
move to above line
---