SparkContext隐式函数定义

时间:2017-06-26 10:40:39

标签: scala apache-spark

我正在阅读Spark的最新代码,有评论:

backtrace:
    #00 pc 00000408  /data/data/com.XXXX.YYY/files/libcrashreport.so (deleted) (offset 0x7000)
    #01 pc 00091add  /system/lib/libart.so (offset 0x1cf000)

我不明白(deleted),我会问火花如何自动找到这些隐式定义,并将隐式定义放入范围,因为用户只在其火花代码中创建了SparkContext实例

1 个答案:

答案 0 :(得分:2)

  

我会问火花是如何自动找到这些隐含的   定义

它不是Spark,它是Scala编译器。在编译代码时,编译器有几个跟踪的位置以尝试查找含义。您可以在Where does Scala look for implicits?

中找到它们

由于这些方法是在WritableConverter上定义的,因此只要Scala查找implicits的某种方式属于范围,您就会自动在范围内进行这些转换并能够应用它们。