2017-07-19 6 views
0

私は例のスパークコードを見ていると私は私が探していたサンプルコードは、2つのimport文を要求する理由として少し困惑している:これはScalaの非常に多くのクラスをインポートするのはなぜですか?

import org.apache.spark._ 
import org.apache.spark.SparkContext._ 

です。私が理解しているように、_はワイルドカード文字です。これはSparkContextを2回インポートしているようです。誰でもこのことを明らかにすることはできますか?

+0

スパーク2.2が出ているので、私は強くあなたが理由ではないのを持っている場合を除き離れパッケージからの滞在をお勧めしたいです。 Spark SQLを使用します(他のアイテムの中では 'SparkSession 'を使用します)。 –

+0

試験のために勉強しています。あなたはそれがどうなるか知っています。 –

+1

これは 'import org.apache.spark._、SparkContext._'に短くすることができます –

答えて

6

この最初の行には、パッケージorg.apache.sparkのすべてのクラスをインポートするように指定されています。つまり、これらのクラスの前にパッケージ名を付けることなくこれらのクラスをすべて使用できます。

2行目には、クラスSparkContextのすべての静的メンバーがインポートされます。つまり、名前の前にクラス名を付けることなく、それらのメンバーを使用できます。

importは実行時に実際に何もしません。コードを少なく書くだけです。あなたは実際に何かを何度も "インポート"しているわけではありません。 importという用語の使用はJavaに由来しますが、混乱していることは間違いありません。

これは役立つかもしれない:

を最初の行がなければ、あなたは

org.apache.spark.SparkContext 

を言っているだろうが、最初のインポート行は、あなたが最初だった場合は、

SparkContext 

を言うことができます行とではありません。

が、両方のインポートラインであなただけ書くことができます0

getOrCreate 
+0

優秀!ありがとうございました! –

関連する問題