Подмножество SparkR DataFrame на основе значений столбца, совпадающих со значениями столбца другого DataFrame

У меня есть два кадра данных SparkR, newHiresDF и salesTeamDF. Я хочу получить подмножество newHiresDF на основе значений newHiresDF$name, которые находятся в salesTeamDF$name, но я не могу найти способ сделать это. Ниже приведен код моих попыток.

#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 также будет работать, если вы предпочитаете это.


person Gaurav Bansal    schedule 13.06.2017    source источник
comment
Только что понял, что это почти дубликат stackoverflow.com/questions/43095208/ , но на него также нет ответа.   -  person Gaurav Bansal    schedule 13.06.2017


Ответы (1)


Придумал решение, которое задним числом кажется простым: просто используйте merge.

NHsubset <- merge(newHiresDF, select(salesTeamDF, 'name'))
person Gaurav Bansal    schedule 13.06.2017