类型安全使用Java加入Spark中

时间:2018-11-27 14:43:50

标签: java apache-spark join apache-spark-sql apache-spark-dataset

我有两个数据集,我将使用Java按如下方式加入它们

Dataset<Row> joineddata = ds1.join(ds2, col("col1").equalTo(col("col2")), "inner");

谁能告诉我如何使用Java以类型安全的方式在Apace Spark中联接两个数据集。我可以在scala中找到有关类型安全连接的示例。但是我无法使用Java找到相同的内容。

任何人都可以给我建议一个链接或与此相关的内容

1 个答案:

答案 0 :(得分:0)

恕我直言,我认为您到目前为止无法做到。

scala社区已实现了这一点:https://github.com/typelevel/frameless。但是由于它使用的是Cats,因此很难将其移植到Java中。即使使用此库,您也不再处理本机Spark,因此并非所有无框架的Spark API均受支持。

一旦加入2个数据集,您将得到数据框,从而失去类型安全性。 row.getAs基本上是类型转换,因此RT异常是不可避免的。