2017-10-12 6 views
0

スパークデータフレームに対して次のタスクを実行するにはどうすればよいですか。私はsparkRのデータフレームのためのフィルタ(%DF2の$ rののx%)コマンドを実行するにはどうすればよいsparkR - リスト内のサブセット値

library(dplyr) 
df1 <- data.frame(x = 1:10, y = 101:110) 
df2 <- data.frame(r = 5:10, s = 205:210) 
df3 <- df1 %>% filter(x %in% df2$r) 

:dplyrで は、私はこれを行うだろうか?

だけで同様の質問を持っていたし、このリストからフィルタリングのために働くように見えた私は

答えて

1

:あなたのケースで

df3 <- filter(df1, ("x in ('string1','string2','string3')")) 

、あなたが

df3 <- drop(join(df1, SparkR::distinct(SparkR::select(df2,'r')), df1$x==df2$r),'r') 

(おそらく少しも参加を検討する必要があります高価なが)..

歓声、 アンナ

+0

問題は、すべてのxを( 'string1'、 'string2'、...)で列挙できないということです。そのような 'strings' – user124543131234523

1

SparkDataFrameへの参照を変換しない次のいずれかの

> df1 <- createDataFrame(data.frame(x = 1:10, y = 101:110)) 
> df2 <- data.frame(r = 5:10, s = 205:210) 
> filter(df1, df1$x %in% df2$r) 
SparkDataFrame[x:int, y:int] 

または両方とjoinを変換:

> df1 <- createDataFrame(data.frame(x = 1:10, y = 101:110)) 
> df2 <- createDataFrame(data.frame(r = 5:10, s = 205:210)) 
> join(df1, df2, df1$x == df2$r, "leftsemi") 
SparkDataFrame[x:int, y:int] 

そしてSparkRでdplyrを使用しないでください。 dplyr互換APIの場合はsparklyrです。

関連する問題