在 Spark CLI 中初始化 HiveContext
Initialising HiveContext in Spark CLI
默认情况下,在命令行界面中初始化 Spark 时,SparkContext 初始化为 sc,SQLContext 初始化为 sqlContext。
但我需要 HiveContext,因为我使用的函数 collect_list
不受 SparkContext 支持,但受 HiveContext 支持。由于 HiveContext 是 SparkContext 的超类,它应该可以工作,但事实并非如此。
如何使用 Spark CLI 在 Scala 中初始化 HiveContext?
sqlContext 是一个 HiveContext
scala> sqlContext
res11: org.apache.spark.sql.SQLContext = org.apache.spark.sql.hive.HiveContext@4756c8f3
[编辑]
在使用之前导入函数。
import org.apache.spark.sql.functions._
在spark-shell中,sqlContext默认是HiveContext的一个实例。您可以在我之前的回答 .
中了解到这一点
然而,collect_list
在 spark 1.5.2 中不可用。它是在 spark 1.6 中引入的,所以你可以找到它是正常的。
此外,您不需要在 shell 中导入 org.apache.spark.sql.functions._
。默认导入。
您可以按照以下步骤操作:
import org.apache.spark.sql.hive.HiveContext
val sqlContext = new HiveContext(sc)
val depts = sqlContext.sql("select * from departments")`
默认情况下,在命令行界面中初始化 Spark 时,SparkContext 初始化为 sc,SQLContext 初始化为 sqlContext。
但我需要 HiveContext,因为我使用的函数 collect_list
不受 SparkContext 支持,但受 HiveContext 支持。由于 HiveContext 是 SparkContext 的超类,它应该可以工作,但事实并非如此。
如何使用 Spark CLI 在 Scala 中初始化 HiveContext?
sqlContext 是一个 HiveContext
scala> sqlContext
res11: org.apache.spark.sql.SQLContext = org.apache.spark.sql.hive.HiveContext@4756c8f3
[编辑]
在使用之前导入函数。
import org.apache.spark.sql.functions._
在spark-shell中,sqlContext默认是HiveContext的一个实例。您可以在我之前的回答
然而,collect_list
在 spark 1.5.2 中不可用。它是在 spark 1.6 中引入的,所以你可以找到它是正常的。
此外,您不需要在 shell 中导入 org.apache.spark.sql.functions._
。默认导入。
您可以按照以下步骤操作:
import org.apache.spark.sql.hive.HiveContext
val sqlContext = new HiveContext(sc)
val depts = sqlContext.sql("select * from departments")`