将sqlContext作为Spark中的隐式参数传递

时间:2016-11-24 18:11:28

标签: scala apache-spark

我在Scala对象中有一个函数,它具有以下签名

def f(v1:Int)(implicit sqlContext: SQLContext)

当我尝试从spark-shell调用此函数时,我称之为

f(1)

我希望现有的sqlContext被隐式传递给它,但它并没有。如何让它工作,以便sqlContext自动传递给这个函数?

--------------更新-------------------

我尝试在调用我的函数之前在spark-shell中导入sqlContext.implicits._但它没有帮助

1 个答案:

答案 0 :(得分:5)

您只需要隐式添加SQLContext到您调用函数的相同上下文中:

implicit val sqlContext = new SQLContext() // just an example
// and then
f(1)

如果您使用的是apacha Spark,则可以使用此导入:

import sqlContext.implicits._