小编Mic*_*ser的帖子

如何将整行传递给UDF - Spark DataFrame过滤器

我正在为具有大量内部结构的复杂JSON数据集编写过滤函数.传递单个列太麻烦了.

所以我声明了以下UDF:

val records:DataFrame = = sqlContext.jsonFile("...")
def myFilterFunction(r:Row):Boolean=???
sqlc.udf.register("myFilter", (r:Row)=>myFilterFunction(r))
Run Code Online (Sandbox Code Playgroud)

直觉我觉得它会像这样工作:

records.filter("myFilter(*)=true")
Run Code Online (Sandbox Code Playgroud)

实际的语法是什么?

apache-spark

21
推荐指数
1
解决办法
2万
查看次数

scala隐式类方法类型不匹配的reduce与非隐式方法的函数currying

问题:

关于隐式类的东西,混淆reduce().在隐式类内部时,编译器会在reduce()第二个参数上抱怨.但是当相同的代码在非隐式方法中时,它编译并正常工作.

我对隐含类缺少什么?

码:

object ImpliCurri {
    implicit class MySeq[Int](val l: Seq[Int]) {
        //not compiling
        final def mapSum(f:Int=>Int):Int = {
            l.map(x=>f(x)).reduce(_+_)
       //compile error on reduce: Type mismatch. Expected String, fount Int
        }
    }

    // works fine
    def mySum(l:Seq[Int], f:Int=>Int):Int = {
        l.map(x=>f(x)).reduce(_+_)
        // compiles and works no issues
    }
}
Run Code Online (Sandbox Code Playgroud)

scala function currying implicits

3
推荐指数
1
解决办法
355
查看次数

标签 统计

apache-spark ×1

currying ×1

function ×1

implicits ×1

scala ×1