如何连接Scala Spark的所有列

如何连接Scala Spark的所有列,scala,apache-spark,Scala,Apache Spark,如果Scala Spark中有两个表,我如何在不显式写出的情况下连接每一列。这里是我必须写出每一列的方法。我想使用Seq方法,因为它可以删除重复的列 table("a") .join(table("b", Seq("col_a","col_b"....) 您可以使用DataFrame.columns获取所有列,如果两个表/数据帧的列相同,则可以按如下方式连接它们。如果列名不同,则需要自定义逻辑来构建联接条件

如果Scala Spark中有两个表,我如何在不显式写出的情况下连接每一列。这里是我必须写出每一列的方法。我想使用Seq方法,因为它可以删除重复的列

table("a")
.join(table("b", Seq("col_a","col_b"....)

您可以使用
DataFrame.columns
获取所有列,如果两个表/数据帧的列相同,则可以按如下方式连接它们。如果列名不同,则需要自定义逻辑来构建联接条件

    case class atable(column1:String, column2:String)

    val table1 = spark.createDataFrame(Seq(atable(column1 = "a",column2 = "1"),atable(column1 = "b",column2 = "2")))
    val table2 = spark.createDataFrame(Seq(atable(column1 = "a",column2 = "1"),atable(column1 = "c",column2 = "3")))

    table1.join(table2, table1.columns).show()
结果-

+-------+-------+
|column1|column2|
+-------+-------+
|      a|      1|
+-------+-------+

您正在选择列
a
,并使用一组不存在的列连接到列
b
。你能澄清一下你想做什么吗?