为了在java的spark应用程序中使用right join,我正在执行类似的操作。
Dataset<Row> dataset3 = dataset1.join(dataset2,
(Seq<String>) dataset1.col("target_guid"),RightOuter.sql());
但是得到这个错误
java.lang.ClassCastException: org.apache.spark.sql.Column cannot be
cast to scala.collection.Seq
除此之外,我找不到在java中为数据集使用连接的方法。有人能帮我想办法吗?
2条答案
按热度按时间2ekbmq321#
可以把你的代码改成这样,
puruo6ea2#
如果您想在java中使用下面的数据集api-
然后将字符串列表转换为seq。请保持下面的方法方便转换
java list
至scala seq
大多数spark API都接受scala seq
```import scala.collection.JavaConversions;
Buffer toScalaSeq(List list) {
return JavaConversions.asScalaBuffer(list);
}
'inner', 'outer', 'full', 'fullouter', 'full_outer', 'leftouter', 'left', 'left_outer', 'rightouter', 'right', 'right_outer', 'leftsemi', 'left_semi', 'leftanti', 'left_anti', 'cross'
Dataset dataset3 = dataset1.join(dataset2,
toScalaSeq(Arrays.asList("target_guid")), "rightouter");