我正在查看示例Spark代码,我对为什么我要查看的示例代码需要两个import语句感到困惑:
import org.apache.spark._
import org.apache.spark.SparkContext._
这是Scala。据我了解,_是通配符。所以这看起来像是我两次导入SparkContext。任何人都可以对此有所了解吗?
答案 0 :(得分:6)
第一行表示导入包org.apache.spark
中的所有类。这意味着您可以使用所有这些类,而无需使用包名称作为前缀。
第二行表示导入类SparkContext
的所有静态成员。这意味着您可以使用这些成员,而无需在名称前加上类名称。
请记住import
在运行时并没有做任何事情;它只是让你编写更少的代码。你实际上并没有"导入"任何两次。术语import
的使用来自Java,并且无可否认它令人困惑。
这可能会有所帮助:
如果没有第一行,你必须说
org.apache.spark.SparkContext
但第一个导入行允许你说
SparkContext
如果你只有第一行而不是第二行,你必须写
SparkContext.getOrCreate
但是使用两个导入行你都可以写
getOrCreate