2016-09-23 7 views
1

私はsparkとsparkRの新人です。私の質問は以下の通りです: 私は以下のコードを書きました: 1)。環境を設定し、spark.sessionを開始()sparkRを使用してデータを処理する場合、実際にプログラムが実行される場所はどこですか?

sparkR.session(master = "my/spark/master/on/one/server/standaloneMode", , sparkConfig = list(spark.driver.memory="4g",spark.sql.warehouse.dir = "my/hadoop_home/bin",sparkPackages = "com.databricks:spark-avro_2.11:3.0.1")) 

は、それから私は書いた:ここ

rund <- data.frame(V1 = runif(10000000,100,10000),V2 =runif(10000000,100,10000)) 
df <- as.DataFrame(rund) 

事です:

1)。プログラムはどこで「分裂」するのですか?私のローカルマシンやサーバー上で?

2)。また、プログラムがどこでコード "as.DataFrame()"を正確に実行したかは誰にでも分かりますか?スパークのstandalone_modeとして設定されていた私のコンピュータ上または私のサーバ上で。

答えて

0

SparkRは、Sparkのインターフェイスです。 https://spark.apache.org/docs/latest/api/R/index.html

これらの機能:これは、いくつかのR関数ははおそらくスパークの機能が利用できるかを確認するためのドキュメントを見ている必要がありますが、すでにR.あなたから知っている同様のユーザー体験を提供するために、SparkRパッケージによってを上書きしていることを意味し通常はSparkDataFramesを取り込みます。たとえば、as.DataFrame関数を使用して作成できます。 SparkDataFramesはSparkクラスター内のSparkDataFrameへの参照を提供します。

例では、ローカルRデータフレームrundを作成しました。また、runifの機能は、Rインスタンスにのローカルで実行されました。

# executed in your local R instance 
rund <- data.frame(V1 = runif(10000000,100,10000),V2 =runif(10000000,100,10000)) 

dfオブジェクトは、しかし、あなたのスパーククラスタに作成されますSparkDataFrame、です。 as.DataFrameがRで実行されますが、実際のSparkDataFrameはクラスタ内にのみ存在します。

df <- as.DataFrame(rund) 

を容易R区別及びデータフレームをスパークするには、class関数を使用することができ:

SparkDataFrameはSparkRパッケージを提供している様々な機能のための入力として使用することができる一般的に
> class(df) 
[1] "data.frame" 
> class(df.spark) 
[1] "SparkDataFrame" 
attr(,"package") 
[1] "SparkR" 

例えば、グループまたはソートあなたのSparkDataFrameをSparkにします。 Spark操作は、Spark操作が呼び出されたときに実行されます。そのようなアクションの例はcollectです。 Sparkの変換をトリガし、Sparkクラスタから計算されたデータを取得し、ローカルのRインスタンスに対応するRデータフレームを作成します。あなたはドキュメントを見ている場合は機能がSparkDataFrameを摂取できるかどうかを確認することができます:https://spark.apache.org/docs/latest/sparkr.html#applying-user-defined-function

##S4 method for signature 'SparkDataFrame' 
collect(x, stringsAsFactors = FALSE) 

をさらにユーザー定義関数を使用して、スパーククラスタでカスタムRのコードを実行することが可能です。

+0

ありがとうございます。 私は分散コンピューティングシステム分野についての相対的なbgを持っておらず、sparkとsparkRについては新しいので、私はこれらの数日間に苦しんでいました。 hhaa 時間があれば、別の質問をさせてもらえますか? http://stackoverflow.com/questions/39683374/sparkr-cannot-read-data-at-deployed-workers-but-ok-with-local-machine –

+0

幸いにして、そしてStack Overflowへようこそ。この回答または他の誰かがあなたの問題を解決した場合は、それを合格とマークしてください。 – Aeck

関連する問題