Scala Dataset.join是连接Spark中两个数据集的最佳方法吗?

Scala Dataset.join是连接Spark中两个数据集的最佳方法吗?,scala,apache-spark,join,apache-spark-dataset,Scala,Apache Spark,Join,Apache Spark Dataset,我有两个大数据集 val-dataA:Dataset[TypeA]和 val-dataB:Dataset[TypeB],其中TypeA和TypeB扩展Serializable 我想在单独的列上连接这两个数据集,因此其中TypeA.ColumnA==TypeB.ColumnB。Spark在一个数据集上提供了这个函数,我认为这样做是正确的,但是这个函数没有文档记录,并且被标记为“实验性的” 我研究过的另一种方法是使用pairrds而不是数据集,并使用公共键连接它们(如下面的帖子所述:) 有没有更好的

我有两个大数据集

val-dataA:Dataset[TypeA]
val-dataB:Dataset[TypeB]
,其中
TypeA
TypeB
扩展
Serializable

我想在单独的列上连接这两个数据集,因此其中
TypeA.ColumnA==TypeB.ColumnB
。Spark在一个数据集上提供了这个函数,我认为这样做是正确的,但是这个函数没有文档记录,并且被标记为“实验性的”

我研究过的另一种方法是使用pairrds而不是数据集,并使用公共键连接它们(如下面的帖子所述:)


有没有更好的方法连接两个数据集,或者最好的方法是使用JoinWith或PairRDDs?

看看这个问题:这并不能回答我提出的问题。这取决于你想要的结果类型,JoinWith返回一个
数据集[(TypeA,TypeB)]
和常规的
联接
将重新生成一个
数据集[行]
(又称
数据帧
),联接两侧的列将在一个单一的平面结构中,就像普通的sql联接一样。