SPARK 算法并行化——非典型,如何

蓝幽灵

我有一个处理要求似乎不适合很好的 SPARK 并行化用例。另一方面,我可能看不到如何在 SPARK 中轻松完成。

我正在寻找并行化以下情况的最简单方法:

  1. 给定一组 N 条记录类型为 A 的记录,
    1. 对 A 记录执行一些处理,生成一组尚不存在的初始结果,例如记录类型 B 的 J 条记录。记录类型 B 具有数据范围方面的内容。
      1. 然后对 A 组尚未处理的记录(剩余部分)重复该过程,用于作为 B 的一部分生成的任何记录,但查看 A 记录的左侧和右侧。
        1. 重复3,直到没有新的记录产生。

这听起来可能很奇怪,但这无非是获取一组交易记录,然后决定给定的计算周期 Pn,在此期间是否存在明显的牛市或熊市价差。一旦找到初始周期,然后按日期在 Pn 之前和 Pn 之后,就可以尝试寻找在初始 Pn 周期之前或之后的牛市或熊市价差周期。等等。一切正常。

我设计的算法适用于使用 SQL 和一些循环插入记录。生成的记录最初并不存在,而是即时创建的。我查看了数据帧和 RDD,但(对我而言)如何做到这一点并不那么明显。

使用 SQL 并不是一个如此困难的算法,但您需要按顺序处理给定逻辑键集的记录。因此不是典型的 SPARK 用例。

我的问题是:

  1. 我怎样才能至少实现并行化?
  2. 我们应该以某种方式使用 mapPartitions 以便至少获得要处理的逻辑键集的范围,还是考虑到我试图呈现的用例,这根本不可能?我要试试这个,但觉得我可能在这里吠错了树。它可能只需要在运行单线程的驱动程序中是一个循环/while。

一些示例以表格格式记录 A - 根据该算法的工作原理:

         Jan   Feb   Mar   Apr   May  Jun  Jul   Aug  Sep
key X     -5    1     0    10     9    -20   0    5    7

将导致记录 B 的生成如下:

key X    Jan - Feb  --> Bear
key X    Apr - Jun  --> Bull
蓝幽灵

这属于非典型 Spark 的范畴。通过在 Spark Scala 中的循环内循环解决,但使用 JDBC。也可以是 Scala JDBC 程序。也有 foreachPartition 的变化。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

jsoup解析非典型标记

来自分类Dev

非典型查询、必要索引、优化

来自分类Dev

如何并行化Spark Scala计算?

来自分类Dev

非典型括号的正则表达式

来自分类Dev

使用 Spring Boot Rest API 的非典型 JSON 配置

来自分类Dev

如何检查Spark是否实际上使工作并行化?

来自分类Dev

使用traceplot函数从链收敛图中删除非典型内部线

来自分类Dev

Spark:如何从Spark Shell运行Spark文件

来自分类Dev

在 spark scala shell 中并行化集合

来自分类Dev

Spark Dataframe并行读取

来自分类Dev

如何并行拟合Spark的分类器?

来自分类Dev

如何优化Spark sql以并行运行

来自分类Dev

如何并行拟合Spark的分类器?

来自分类Dev

Spark如何将切片与任务/执行者/工人并行化?

来自分类Dev

Spark:如何并行化每个数据帧分区上的后续特定工作

来自分类Dev

Spark并行处理分组数据

来自分类Dev

使用Spark并行处理集合

来自分类Dev

Spark上的并行参数搜索

来自分类Dev

Spark是否并行执行UnionAll?

来自分类Dev

在Spark Array上运行的Scala函数是否并行化?

来自分类Dev

在Spark中嵌套并行化?什么是正确的方法?

来自分类Dev

Spark没有减少任何并行化

来自分类Dev

SPARK N元语法和并行化不使用mapPartitions

来自分类Dev

使用 Dataframes 的 Spark Overlap 算法

来自分类Dev

如何使用Spark的repartitionAndSortWithinPartitions?

来自分类常见问题

如何提高Spark性能?

来自分类Dev

如何检查Spark版本

来自分类Dev

如何检查Spark版本

来自分类Dev

如何避免Spark的for循环?