2017-02-17 24 views
3

を使用してRDDを作成することはできません我々ははなぜ我々はスパークセッションに

Spark context available as 'sc'. 
Spark session available as 'spark'. 

は、私がもしそうなら、なぜ我々はできません...スパークセッションは、コンテキスト、ハイブコンテキストをストリーミング、スパークコンテキストを含んで読んで、ことを確認しますスパーク・コンテキストの代わりにスパーク・セッションを使用してrddを作成します。

scala> val a = sc.textFile("Sample.txt") 
17/02/17 16:16:14 WARN util.SizeEstimator: Failed to check whether UseCompressedOops is set; assuming yes 
a: org.apache.spark.rdd.RDD[String] = Sample.txt MapPartitionsRDD[1] at textFile at <console>:24 

scala> val a = spark.textFile("Sample.txt") 
<console>:23: error: value textFile is not a member of org.apache.spark.sql.SparkSession 
     val a = spark.textFile("Sample.txt") 

上記のように、sc.textFileはRDDなくspark.textFileの作成に成功しました。

答えて

1

sparkの以前のバージョンでは、spark contextはSparkのエントリポイントでした。 RDDはメインAPIであったため、コンテキストAPIを使用して作成され、操作されました。

他のすべてのAPIについては、別のコンテキストを使用する必要がありました。ストリーミングには、sqlContextとハイブHiveContextの場合はStreamingContextが必要でした。

しかし、DataSet and Dataframe API’sが新しい標準APIになりつつあるため、Sparkではエントリポイントビルドが必要です。したがって、Spark 2.0では、スパークセッションと呼ばれるDataSet and Dataframe API’sの新しいエントリポイントがSparkにあります。

SparkSessionは、本質的にはSQLContext, HiveContext and future StreamingContextの組み合わせです。

これらのコンテキストで使用できるすべてのAPIは、sparkセッションでも利用できます。 Sparkセッションは、内部計算でのスパークコンテキストを持ちます。

sparkContextには以前の バージョンのメソッドが含まれています。

spark.sparkContext().textFile(yourFileOrURL) 

この上のドキュメントを参照してください。sparkSessionの

方法はとてもすべてを行う必要があり、スパークコンテキストスパークセッションを介して提供され、2+スパークでhere

2

を見つけることができますアクセス方法here

PySparkで、これはなることを注意:

spark.sparkContext.textFile(yourFileOrURL) 

は、ドキュメントhereを参照してください。

+0

これは正解です。 – chhantyal