2017-06-13 3 views
0

Ich habe zwei SparkR DataFrames, newHiresDF und salesTeamDF. Ich möchte eine Teilmenge von newHiresDF basierend auf den Werten von newHiresDF$name, die in salesTeamDF$name sind, aber ich kann nicht herausfinden, eine Möglichkeit, dies zu tun. Unten ist der Code für meine Versuche.Subsetting SparkR DataFrame basierend auf Spaltenwerten, die den Spaltenwerten eines anderen DataFrames entsprechen

#Create DataFrames 
newHires <- data.frame(name = c("Thomas", "George", "Bill", "John"), 
    surname = c("Smith", "Williams", "Brown", "Taylor")) 
salesTeam <- data.frame(name = c("Thomas", "Bill", "George"), 
    surname = c("Martin", "Clark", "Williams")) 
newHiresDF <- createDataFrame(newHires) 
salesTeamDF <- createDataFrame(salesTeam) 
display(newHiresDF) 

#Try to subset newHiresDF based on name values in salesTeamDF 
#All of the below result in errors 
NHsubset1 <- filter(newHiresDF, newHiresDF$name %in% salesTeamDF$name) 
NHsubset2 <- filter(newHiresDF, intersect(select(newHiresDF, 'name'), 
    select(salesTeamDF, 'name'))) 
NHsubset3 <- newHiresDF[newHiresDF$name %in% salesTeamDF$name,] #This is how it would be done in R 

#What I'd like NHsubset to look like: 
    name surname 
1 Thomas Smith 
2 George Williams 
3 Bill Brown 

PySpark-Code funktioniert auch, wenn Sie das bevorzugen.

+0

Gerade realisiert dies ist ein nahes Duplikat von https://stackoverflow.com/questions/43095208/subset-dataframe-based-on-matching-values-in-another-dataframe-pyspark-1-6- 1 aber das wurde auch nicht beantwortet. –

Antwort

0

Eine Lösung gefunden, die im Nachhinein einfach erscheint: einfach merge verwenden.

NHsubset <- merge(newHiresDF, select(salesTeamDF, 'name')) 
Verwandte Themen