Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 如何使用Spark最佳地构造线性规划_Apache Spark_Linear Programming - Fatal编程技术网

Apache spark 如何使用Spark最佳地构造线性规划

Apache spark 如何使用Spark最佳地构造线性规划,apache-spark,linear-programming,Apache Spark,Linear Programming,我必须解决大量(从2百万到1000万)非常相似的小问题(可能是100个约束),其中只有少量约束,总是相同的变化 从本质上说,我想尽量降低覆盖消费的成本。规则大致如下: 每个客户(我们有数百万个客户)都会消费大量不同的商品,这对每个客户来说都是不同的。 我们有许多产品,每种产品都包括一个或多个项目,成本固定。产品和成本对于所有客户来说都是常见的 此外,还存在一些附加约束,用于链接每个客户可以组合哪些产品,但这些约束对于所有客户都是相同的。 我计划使用Spark解决这个问题,但我不熟悉它的算法在这个

我必须解决大量(从2百万到1000万)非常相似的小问题(可能是100个约束),其中只有少量约束,总是相同的变化

从本质上说,我想尽量降低覆盖消费的成本。规则大致如下:

每个客户(我们有数百万个客户)都会消费大量不同的商品,这对每个客户来说都是不同的。 我们有许多产品,每种产品都包括一个或多个项目,成本固定。产品和成本对于所有客户来说都是常见的 此外,还存在一些附加约束,用于链接每个客户可以组合哪些产品,但这些约束对于所有客户都是相同的。 我计划使用Spark解决这个问题,但我不熟悉它的算法在这个问题上的性能,我的问题是,我应该尝试解决大量的小问题,还是应该将它们合并到一个大问题中,为每个客户重复产品之间的约束

也许把几十万个客户聚在一起

或者,我可以利用个别问题非常相似的优势更快地解决它们吗


感谢Spark通常是如何解决问题的

Spark是一个大型分布式计算引擎,其基本目的是将计算结果传送到数据,并尽可能利用内存操作并行解决问题

通常,您只需将所有数据加载到数据集或数据帧(想想SQL表),然后编写伪SQL来解决问题

客户记录将只是各种表中的行。Spark将等待您指定输出步骤(写入文件/db/etc),此时它将生成一个优化的查询计划,以最智能的方式执行您的操作

缩放火花

如果速度太慢或失败,通常可以通过为spark提供更多的内核、内存和执行器,并通过更智能地对数据进行分区(分区是并行单元;spark SQL默认使用200)来扩展。 Spark是在一个足够大的计算机集群上运行的,可以一次解决所有问题。例如,在8节点集群上,我们可以一次处理数十亿行而不会出现问题

如果你没有一个真正的集群或一个足够大的集群来解决你的问题,你可以批量计算,这很好;但一般的做法也会类似

特殊图书馆


有专门的库来处理图形(GraphX)、机器学习,还有专门的算法库;但听起来你并不需要这些东西。

单纯形LP解算器在求解类似模型时非常有效。您可能应该查看LP解算器的文档,搜索“高级基础”、“热(热)启动”或类似内容。嗨,欧文,谢谢。我们还没有解决方案。我们仍在努力了解风景,但我认为你的评估是正确的。谢谢你的回复。我明白,我们与Spark合作已有相当长的时间了。我的问题是如何最好地并行化。一个选择(我认为这不是一个好主意)是构建一个更大的问题,并使用MLLib中的代数库来解决它,使用所有的工作人员。但是我越想它,我越觉得这不是解决问题的方法。我们将尝试将解算器的不同副本分发到节点,并让它们处理erwin kalvelagen建议的类似问题。