【发布时间】:2018-12-11 04:42:27
【问题描述】:
扩展此处给出的用例: How to avoid duplicate columns after join?
我有两个包含 100 列的数据框。以下是一些带有连接列的示例:
df1.columns
// Array(ts, id, X1, X2, ...)
和
df2.columns
// Array(ts, id, X1, Y2, ...)
之后:
val df_combined = df1.join(df2, df1.X1===df2.X1 and df1.X2==df2.Y2)
我最终得到以下列:Array(ts, id, X1, X2, ts, id, X1, Y2)。 X1 重复。
我不能使用join(right: Dataset[_], usingColumns: Seq[String]) api,因为要使用这个api,所有列都必须在两个数据框中都存在,这不是这里的情况(X2 和Y2)。我看到的唯一选择是稍后重命名列并删除列,或者稍后从第二个数据帧中为数据帧和删除列命名。
没有一个简单的api来实现这一点吗?例如。在相等连接的情况下自动删除连接列之一。
【问题讨论】:
-
您可以选择使用 spark sql 吗?
-
是的。但我想避免手动选择加入中的所有字段。太多了。
-
好的,你有多少重复的列?
标签: scala apache-spark join apache-spark-sql