数据帧A和B有不同的Schema,我想在A到B中插入行。
环境是Spark 1.6,因此当两个数据帧具有相同顺序的相同列时,可以使用unionAll函数。
A的架构:
root
|--a
|--b
B的架构:
root
|--a
|--b
|--c
|--d
| |--d_1
| |--d_2
| |--d_3
我需要插入列" a"和" b"到datafrane B并将其他栏留空。
答案 0 :(得分:0)
假设 a 和 b 列对是唯一的,您可以外部加入DataFrame。
B.join(A, usingColumns = Seq("a", "b"), "outer")
如果不是,您可以附加一个唯一的列,然后执行外连接
import org.apache.spark.sql.functions._
B.withColumn("id", lit(2)).join(A.withColumn("id", lit(1)), usingColumns = Seq("id"), "outer")