我期待在例如星火代碼和我有點困惑,爲什麼我在看的示例代碼需要兩個import語句:我爲什麼要導入這麼多類?
import org.apache.spark._
import org.apache.spark.SparkContext._
這是斯卡拉。據我瞭解,_是通配符。所以這看起來像我兩次導入SparkContext。任何人都可以闡明這一點嗎?
我期待在例如星火代碼和我有點困惑,爲什麼我在看的示例代碼需要兩個import語句:我爲什麼要導入這麼多類?
import org.apache.spark._
import org.apache.spark.SparkContext._
這是斯卡拉。據我瞭解,_是通配符。所以這看起來像我兩次導入SparkContext。任何人都可以闡明這一點嗎?
第一行說要導入包org.apache.spark
中的所有類。這意味着您可以使用所有這些類,而無需在包名前加前綴。
第二行說要導入類SparkContext
的所有靜態成員。這意味着您可以使用這些成員,而不必在名稱前加上類名稱。
請記住import
在運行時沒有做任何事情;它只是讓你寫更少的代碼。你實際上並沒有兩次「進口」任何東西。術語import
的使用來自Java,並且毫無疑問是令人困惑的。
這可能幫助:
沒有第一線,你不得不說
org.apache.spark.SparkContext
,但第一個導入線可以讓你說
SparkContext
如果只有第一線和不是第二,你將不得不寫
SparkContext.getOrCreate
但兼具進口線,你可以只寫
getOrCreate
非常好!謝謝! –
由於星火2.2出來了,我強烈建議,除非你有一個理由不留在包離開。使用Spark SQL(在其他好東西中有'SparkSession')。 –
學習考試。你知道它是怎麼回事。 –
這可以縮短爲'import org.apache.spark._,SparkContext._' –