只是想知道,为了知道Spark是否是正确的工具,是否有一些问题要问自己?
我再一次花了一半时间用Apache Spark实现POC,以便将性能与纯Python代码进行比较,当我看到1/100比率(赞成python)时,我感到困惑。
我知道Spark是一个"大数据"工具和每个人都在说" Spark是处理TB / PB数据的正确工具。但我认为这不是唯一要考虑的因素。
简而言之,我的问题是,当给出小数据作为输入时,我怎么知道计算是否会消耗足够的东西以便Spark能够实际改进?
答案 0 :(得分:0)
我不确定是否有这样的清单,但如果有,第一个问题可能就是
您的数据是否适合单台计算机?
如果答案为“是”,则不需要Spark。
Spark旨在处理大量数据,使其不能由一台机器处理,作为Hadoop的替代方案,以容错的方式。
与单个计算机上的传统工具相比,与分布式方式操作相关的许多开销(例如容错和网络)导致明显减慢。
因为Spark 可以用作小型数据集上的并行处理框架,并不意味着它应该以这种方式使用。通过使用Python,并使用线程并行化处理,您将获得更快的结果和更低的复杂性。
当你必须处理一个不适合单个机器的数据集时,当处理过程复杂且耗时且遇到基础设施问题的可能性很高而且失败会导致从划伤。
将Spark与本机Python进行比较就像将机车与自行车进行比较一样。自行车快速灵活,直到你需要从国家的一端运输几吨钢到另一端:然后 - 不那么有趣。