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

HHH*_*HHH 3 scala apache-spark

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

def f(v1:Int)(implicit sqlContext: SQLContext)
Run Code Online (Sandbox Code Playgroud)

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

f(1)
Run Code Online (Sandbox Code Playgroud)

我希望现有的sqlContext隐式传递给它,但事实并非如此.如何让它工作,以便sqlContext自动传递给这个函数?

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

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

Jul*_*ves 5

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

implicit val sqlContext = new SQLContext() // just an example
// and then
f(1)
Run Code Online (Sandbox Code Playgroud)

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

import sqlContext.implicits._
Run Code Online (Sandbox Code Playgroud)