在 spark java 中取两个数据集并集的必要条件是啥
Posted
技术标签:
【中文标题】在 spark java 中取两个数据集并集的必要条件是啥【英文标题】:What are necessary conditions for taking Union of two datasets in spark java在 spark java 中取两个数据集并集的必要条件是什么 【发布时间】:2019-11-30 13:01:50 【问题描述】:什么是必要条件,例如没有列或相同的列或不同的列
【问题讨论】:
【参考方案1】:假设您有两个数据框。
val df1 = spark.sql("SELECT 1 as a,3 as c")
val df2 = spark.sql("SELECT 1 as a,2 as b")
df1.union(df2) - 会起作用,因为它的条件是相同的列数
df1.union(df2).show()
+---+---+
| a| c|
+---+---+
| 1| 3|
| 1| 2|
+---+---+
如您所见,它采用 df1 列,并且仅通过 df2 列的索引匹配,而不是通过名称匹配。
如果您使用 unionByName,例如
df1.unionByName(df2).show()
它不起作用,因为它尝试在 df2 中查找“c”列。
总而言之,两种联合样式都需要相同数量的列。 unionByName - 要求列的名称也相同。
【讨论】:
以上是关于在 spark java 中取两个数据集并集的必要条件是啥的主要内容,如果未能解决你的问题,请参考以下文章
Java使用不同方式获取两个集合List的交集补集并集(相加)差集(相减)