如何使用 Apache Beam 处理 org.apache.spark.sql.Dataset?
How to process org.apache.spark.sql.Dataset with apache beam?
我想使用 Apache Beam 处理来自 org.apache.spark.sql.Dataset 从 spark.sql(" query ") 检索的对象的数据。
但我无法直接将 PTransform 应用于此数据集。现在我正在使用一个解决方案,我将数据集转储到 txt 文件,然后用 beam 处理它。
有什么方法可以直接将 Dataset / JavaRDD 消耗到 beam (Ptransform) 中吗?
我正在使用 Apache Beam 2.9.0。
据我所知,您现在不能将 Dataset 消费到 Beam 中。 Dataset 是 Spark 的 API ,它与 Spark 内部实现相结合。所以你不能启动 Spark 作业,运行 直到一个步骤,然后让 Beam 接管它。
您的方法是连接两个不同系统管道的正确方法。即使对于同类型系统的管道,数据共享通常也是连接不同管道的唯一途径。
有一种方法可以使 Spark on Beam 工作,即从 Spark 代码自动生成 Beam 代码。它在开源世界中是不存在的,但是你可以从LinkedIn的实践中读到一些信息:https://engineering.linkedin.com/blog/2019/01/bridging-offline-and-nearline-computations-with-apache-calcite
我想使用 Apache Beam 处理来自 org.apache.spark.sql.Dataset 从 spark.sql(" query ") 检索的对象的数据。 但我无法直接将 PTransform 应用于此数据集。现在我正在使用一个解决方案,我将数据集转储到 txt 文件,然后用 beam 处理它。 有什么方法可以直接将 Dataset / JavaRDD 消耗到 beam (Ptransform) 中吗?
我正在使用 Apache Beam 2.9.0。
据我所知,您现在不能将 Dataset 消费到 Beam 中。 Dataset 是 Spark 的 API ,它与 Spark 内部实现相结合。所以你不能启动 Spark 作业,运行 直到一个步骤,然后让 Beam 接管它。
您的方法是连接两个不同系统管道的正确方法。即使对于同类型系统的管道,数据共享通常也是连接不同管道的唯一途径。
有一种方法可以使 Spark on Beam 工作,即从 Spark 代码自动生成 Beam 代码。它在开源世界中是不存在的,但是你可以从LinkedIn的实践中读到一些信息:https://engineering.linkedin.com/blog/2019/01/bridging-offline-and-nearline-computations-with-apache-calcite