Spark 2.x 将 HiveThriftServer2 与 sqlContext 结合使用
Spark 2.x using HiveThriftServer2 with sqlContext
我的要求是启用 ODBC/JDBC 访问 SparkSQL 临时 table,Spark 中有一个 DataFrame(混合 JSON 基于和流媒体)。
我让它在 Spark 1.6 中工作,然后最近将 Spark 升级到 2.1.1。我调整了我的代码作为this question中的第二个回答者。但是,我注意到此条款的弃用警告:
val sqlContext = new org.apache.spark.sql.SQLContext(spark.sparkContext)
所以查了下javadoc on sqlContext, and it says "Deprecated. Use SparkSession.builder instead. Since 2.0.0." But then, accordingly to even the latest HiveThriftserver2.scala code in git,方法startWithContext需要sqlContext类型的参数。
那么,有没有知情人士对此有所说明:
首先我是否选择了正确的方法来解决问题?我不想从我的 Spark 代码中启动 HiveThriftServer2,但是 /sbin/start-thriftserver.sh 没有为我提供使用 my [=38 启动 thriftserver 实例的选项=].或者,是吗,我只是想念它?
还有其他方法可以使用 SparkSession 从 Spark 代码启动 HiveThriftServer2 吗?
您不必再创建 SQLContext。只是从 spark 会话中获取它。
val spark: SparkSession = SparkSession
.builder()
.appName("Your application name")
.getOrCreate()
val sqlContext: SQLContext = spark.sqlContext
HiveThriftServer2.startWithContext(sqlContext)
我的要求是启用 ODBC/JDBC 访问 SparkSQL 临时 table,Spark 中有一个 DataFrame(混合 JSON 基于和流媒体)。
我让它在 Spark 1.6 中工作,然后最近将 Spark 升级到 2.1.1。我调整了我的代码作为this question中的第二个回答者。但是,我注意到此条款的弃用警告:
val sqlContext = new org.apache.spark.sql.SQLContext(spark.sparkContext)
所以查了下javadoc on sqlContext, and it says "Deprecated. Use SparkSession.builder instead. Since 2.0.0." But then, accordingly to even the latest HiveThriftserver2.scala code in git,方法startWithContext需要sqlContext类型的参数。
那么,有没有知情人士对此有所说明:
首先我是否选择了正确的方法来解决问题?我不想从我的 Spark 代码中启动 HiveThriftServer2,但是 /sbin/start-thriftserver.sh 没有为我提供使用 my [=38 启动 thriftserver 实例的选项=].或者,是吗,我只是想念它?
还有其他方法可以使用 SparkSession 从 Spark 代码启动 HiveThriftServer2 吗?
您不必再创建 SQLContext。只是从 spark 会话中获取它。
val spark: SparkSession = SparkSession
.builder()
.appName("Your application name")
.getOrCreate()
val sqlContext: SQLContext = spark.sqlContext
HiveThriftServer2.startWithContext(sqlContext)