使用 Java 在 Spark 中键入安全连接

Posted

技术标签:

【中文标题】使用 Java 在 Spark 中键入安全连接【英文标题】:Type Safe joins in Spark using Java 【发布时间】:2018-11-27 14:43:49 【问题描述】:

我有两个数据集,我正在使用 java 加入它们,如下所示

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

谁能告诉我如何使用 java 以类型安全的方式在 Apace Spark 中加入两个数据集。我可以在 scala 中找到类型安全连接的示例。但是我用 java 找不到。

谁能给我一个链接或与此相关的东西

【问题讨论】:

能否链接您找到的示例并解释为什么不能在 Java 中应用这些示例? @user10465355 示例在此链接中***.com/questions/40605167/… 【参考方案1】:

恕我直言,我认为您目前还做不到。

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

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

【讨论】:

以上是关于使用 Java 在 Spark 中键入安全连接的主要内容,如果未能解决你的问题,请参考以下文章

TCP半连接队列和全连接队列(史上最全)

TCP半连接队列和全连接队列(史上最全)

TCP半连接队列和全连接队列(史上最全)

类型安全连接与 Spark 数据集的安全性比我预期的要低

Spark 2.2 空安全左外连接空指针异常

Tableau + Spark SQL 连接器 + Java Spark 数据帧