【发布时间】:2016-07-07 21:51:19
【问题描述】:
在广播数据帧并尝试在 Spark UDF 中访问它们时,我收到空指针异常。
UDF 定义-
def test_udf(parm1: String, parm2: String, paarm3: String, ) = {
println ("Inside UDF ")
B.value.take(1).foreach { println }
println("after print")
..... ....... }
> sqlContext.udf.register("test_udf", test_udf _)
广播-
val B = sc.broadcast(sqlContext.sql("""Select * FROM table_a where col1='10102'""")) // Returns almost 20 MB data
访问 UDF-
val df = sqlContext.sql("SELECT test_udf(parm1,parm2,parm3) AS test FROM table_b").take(1)
在这一行之后,我在 B.value.take(1).foreach { println }
行的 UDF 中得到空指针异常我怀疑广播没有正确进行。这段代码有问题吗?使用 Spark 1.6.1
【问题讨论】:
标签: apache-spark apache-spark-sql