у меня есть следующий Spark DataFrame:
aps=data.frame(agent=c('a','b','c','d','a','a','a','b','c','a','b'),product=c('P1','P2','P3','P4','P1','P1','P2','P2','P2','P3','P3'),
sale_amount=c(1000,2000,3000,4000,1000,1000,2000,2000,2000,3000,3000))
RDD_aps=createDataFrame(sqlContext,agent_product_sale)
agent product sale_amount
1 a P1 1000
2 b P2 2000
3 c P3 3000
4 d P4 4000
5 a P1 1000
6 a P1 1000
7 a P2 2000
8 b P2 2000
9 c P2 2000
10 a P3 3000
11 b P3 3000
и процент = data.frame (агент = c ('a', 'b', 'c'), процент = c (0,2, 0,5, 1,0))
agent percent
a 0.2
b 0.5
c 1.0
Мне нужно объединить (объединить) два фрейма данных, чтобы я мог иметь процент для каждого агента примерно так:
agent product sale_amount percent
1 d P4 4000 NA
2 c P3 3000 1.0
3 c P2 2000 1.0
4 b P2 2000 0.5
5 b P2 2000 0.5
6 b P3 3000 0.5
7 a P1 1000 0.2
8 a P1 1000 0.2
9 a P1 1000 0.2
10 a P2 2000 0.2
11 a P3 3000 0.2
Я уже пробовал:
joined_aps=join(RDD_aps,percent,RDD_aps$agent==percent$agent,"left_outer")
но он добавляет новый второй столбец «агент» из процентного фрейма данных, и мне не нужен дублирующийся столбец.
Я также пробовал:
merged=merge(RDD_aps,percent, by = "agent",all.x=TRUE)
Этот также добавляет столбец «agent_y», но я просто хочу иметь один столбец агента (столбец агента из RDD_aps)