为什么函数式语言对大数据有用?

时间:2013-04-12 20:55:46

标签: performance functional-programming bigdata

我目前正在银行工作,并使用Q(kdb +,K无论它叫什么)。我知道这是一种函数式语言,我也知道许多组织使用函数式语言来处理大型数据集。

我想知道为什么函数式语言(编程)对大数据有用?是因为他们编译代码的方式还是其他一些原因。

另外,如果这个想法是错误的,有人可以解释为什么错了吗?

ps:如果有类似问题,请原谅我:P

2 个答案:

答案 0 :(得分:4)

其中一个原因是拥有不可变变量让你可以并行执行代码并且非常容易扩展。

答案 1 :(得分:2)

Zdravko对于不可变状态是正确的,这使得并发更容易,并且不太容易出现竞争条件风格错误。但是,这仅对多线程并发有帮助。当你谈论大数据时,你谈论的是水平扩展的集群计算。在功能编程语言中对此并不太支持。

有一些关于FP的东西已经吸引了大数据梦想的开发人员的想象力。也许它与FP的面向流的高阶函数有关,可以让你考虑处理数据流。使用FP,您可以解决诸如并集,交集,差异,地图,平面图和缩小等语言问题。

但仅FP不适用于分布式计算环境。在OSCON 2014上,我了解了一些将FP语言与Hadoop集成的开源项目。参见Functional Programming and Big Data对三个此类项目的比较评估,以获得牵引力; Netflix Pig Pen,Cascalog和Apache Spark。