2016-11-24 108 views
3

传递sqlContext作为隐含参数我有,当我尝试调用从火花壳这个功能我这样称呼它在星火

f(1) 
它具有以下特征

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

Scala的对象的函数

我希望现有的sqlContext隐式传递给它,但它没有。我怎样才能让它工作,以便sqlContext自动传递给这个函数?

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

我试图导入sqlContext.implicits。 _在呼唤我的功能之前,火花外壳,但它并没有帮助

+0

我有同样的问题,你最终弄清楚了吗? – Avision

回答

5

你只需要隐式添加SQLContext到您所呼叫的功能相同的情况下:

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

如果您正在使用apacha Spark,您可以使用此导入:

import sqlContext.implicits._ 
+0

但它杀死了整个目的。我试图让它对用户不可见,所以用户调用调用我的函数而不将sqlContext定义为隐式,否则我可以将sqlContext作为普通参数传递。 –

+0

我尝试在spark-shell中导入,但它并没有帮助! –

+0

用户必须以某种方式提供上下文。我假设你在使用Spark,是吗? –