在spark java中合并两个数据集的必要条件是什么
什么是必要的条件,如无列、相同列或不同列让我们假设您有两个数据帧在spark java中合并两个数据集的必要条件是什么,java,apache-spark,union,apache-spark-dataset,Java,Apache Spark,Union,Apache Spark Dataset,什么是必要的条件,如无列、相同列或不同列让我们假设您有两个数据帧 val df1 = spark.sql("SELECT 1 as a,3 as c") val df2 = spark.sql("SELECT 1 as a,2 as b") union(df2)-将起作用,因为它的条件是相同的列数 df1.union(df2).show() +---+---+ | a| c| +---+---+ | 1| 3| | 1| 2| +---+---+ 正如您所看到的,它采用d
val df1 = spark.sql("SELECT 1 as a,3 as c")
val df2 = spark.sql("SELECT 1 as a,2 as b")
union(df2)-将起作用,因为它的条件是相同的列数
df1.union(df2).show()
+---+---+
| a| c|
+---+---+
| 1| 3|
| 1| 2|
+---+---+
正如您所看到的,它采用df1列,并且仅通过df2列的索引匹配,而不是通过名称匹配
如果您使用unionByName,例如
df1.unionByName(df2).show()
它无法工作,因为它试图在df2中查找“c”列
总之,两种联合样式需要相同的列数。
unionByName-要求列也具有相同的名称