我有两个数据框,它们具有不同类型的列。我需要加入这两个不同的数据框。请引用下面的例子
val df1 has
Customer_name
Customer_phone
Customer_age
val df2 has
Order_name
Order_ID
这两个数据框没有任何公共(public)列。两个数据框中的行数和列数也不同。我尝试插入一个新的虚拟列来增加 row_index 值,如下所示 val dfr=df1.withColumn("row_index",monotonically_increasing_id())。
但是由于我使用的是 Spark 2,不支持 monotonically_increasing_id 方法。有什么方法可以连接两个数据框,以便我可以在一张 Excel 文件中创建两个数据框的值。
例如
val df1:
Customer_name Customer_phone Customer_age
karti 9685684551 24
raja 8595456552 22
val df2:
Order_name Order_ID
watch 1
cattoy 2
我的最终 Excel 工作表应该是这样的:
Customer_name Customer_phone Customer_age Order_name Order_ID
karti 9685684551 24 watch 1
raja 8595456552 22 cattoy 2
最佳答案
使用以下代码向两个数据框添加索引列
df1.withColumn("id1",monotonicallyIncreasingId)
df2.withColumn("id2",monotonicallyIncreasingId)
然后使用以下代码连接两个数据帧并删除索引列
df1.join(df2,col("id1")===col("id2"),"inner")
.drop("id1","id2")
关于scala - 连接两个没有公共(public)列的数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49738694/