Rで1:10000データを作成しました。SparkRを使用して、1:10000データでRDDを作成しました。 SparkRを使用してデータ< 10を出力するようにフィルタリングしたい。私はSparkRを勉強しており、何か助けていただければ幸いです。重複しているとマークする前に注意深くお読みください。最後にデータフレームを扱うのが好きな人のためのコードも提供しました。sparkRデータフレームにないデータをフィルタリングする
library(SparkR)
sc <- sparkR.init(master = "local")
sqlContext <- sparkRSQL.init(sc)
Data <- c(1:10000)
distData <- SparkR:::parallelize(sc,Data)
すべてのデータを印刷したい< 10.答えを得るために以下の方法を試しました。残念ながら、私はそれぞれのエラーを取得します。問題はパラレル化機能ではありません。私はフィルターと収集機能に問題があります。詳細は、実行したさまざまな試行と関連するエラーを参照してください。
SparkR:::filter(distData[distData < 10])
Error: Error in SparkR:::filter(distData[distData < 10]) :
error in evaluating the argument 'x' in selecting a method for function 'filter': Error in distData[distData < 10] :
error in evaluating the argument 'i' in selecting a method for function '[': Error in distData < 10 :
comparison (3) is possible only for atomic and list types
SparkR:::filter(sc,distData[distData < 10])
Error in SparkR:::filter(sc, distData[distData < 10]) :
error in evaluating the argument 'condition' in selecting a method for function 'filter': Error in distData[distData < 10] :
error in evaluating the argument 'i' in selecting a method for function '[': Error in distData < 10 :
comparison (3) is possible only for atomic and list types
SparkR:::collect(distData,filter(distData[distData<10]))
Error in filter(distData[distData < 10]) :
error in evaluating the argument 'x' in selecting a method for function 'filter': Error in distData[distData < 10] :
error in evaluating the argument 'i' in selecting a method for function '[': Error in distData < 10 :
comparison (3) is possible only for atomic and list types
SparkR:::collect(distData, function(dist){
print(dist[dist<10])
})
Error in if (flatten) { : argument is not interpretable as logical
filter(distData, function(dist){
print(dist[dist<10])
})
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘filter’ for signature ‘"RDD", "function"’
後
は、私は、データフレームで動作df <- SparkR:::createDataFrame(sqlContext,distData)
colnames(df)<-c("random")
df1<-subset(df, nana$random<10)
SparkR:::collect(df1)
私は 'sparkR'についてはあまりよくありませんが、あなたがなぜプライベートファンサイト(' ::: 'によって隠されています)を使用しているのかを学んでいるのですか?私は['filter'](https://spark.apache.org/docs/1.6.0/api/R/filter.html)関数を使用しますが、データを長い形式にする必要があります。 – agstudy
それはまだ重複しています。非難され、意図的に隠された機能を(他の質問の答えとして)使用しようとしています。答えは、他の回答のリソースを使用するか、廃止予定のRDDインターフェイスを使用しないようにすることです。 – hrbrmstr
私の質問を丁寧に読んでいただければ、理解することができます。私はここで何かを正当化するつもりはない。私はRを使用することを知っています。フィルタリングのプロセスは、通常のRの2つのステップで行うことができます。私はsparkRを探索するために "私的な機能"を使用しています。私はsparkRがベクトルを扱うことができないと信じています。データフレーム形式のデータのみを処理できます。 sparkRの多くの先進的なユーザーがいるので、私が間違っている場合は私を修正します。 – Samarth