我决定创建此问题,因为the answer provided to a very similar问题对我的方案不起作用:
我想合并这两个SparkR数据帧df1
col1 col2
1 11
2 22
3 33
4 44
和df2
col1 col2 newcol
1 11 401
2 22 402
3 33 403
4 44 404
dfs应该在第1列和第2列合并。我尝试了上面链接中提出的所有步骤(例如省略了" by"语句),但结果总是如下所示:
col1_x col2_x col1_y col2_y newcol
1 11 1 11 401
2 22 2 22 402
3 33 3 33 403
4 44 4 44 404
我不想要重复列,现在我必须手动删除col1_y,col2_y并将col1_x,col2_x重命名为仅包含col1,col2和newcol:
df <- merge(df1, df2) # <- how can I change this?
df$col1_y <- NULL
df$col2_y <- NULL
df <- withColumnRenamed(df, "col1_x", "col1")
df <- withColumnRenamed(df, "col2_x", "col2")
我使用by,by.x和by.y语句尝试了各种组合,但没有一个工作。 有没有办法可以通过省略其中一个步骤来简化这个繁琐的纠正链?谢谢!
答案 0 :(得分:1)
这是预期的行为,一个选项是生成select()
的{{1}}个相关列:
DataFrame