【问题标题】:why is functional language good for big data?为什么函数式语言对大数据有好处?
【发布时间】:2013-04-05 12:44:46
【问题描述】:
我目前在一家银行工作,使用 Q(kdb+, K 不管它叫什么)。我知道这是一种函数式语言,我也知道很多组织使用函数式语言来处理大型数据集。
我想知道为什么函数式语言(编程)对大数据有好处?是因为他们编译代码的方式,还是其他一些原因。
另外,如果这个想法是错误的,谁能解释为什么它是错误的?
ps:如有类似问题,请见谅:P
【问题讨论】:
标签:
performance
functional-programming
bigdata
【解决方案1】:
Zdravko 是正确的,不可变状态使并发更容易,更不容易出现竞争条件风格的错误。但是,这只有助于多线程并发。当您谈论大数据时,您谈论的是水平扩展的集群计算。函数式编程语言对此没有太多支持。
FP 的某些东西吸引了怀揣大数据梦想的开发人员的想象力。也许它与 FP 的面向流的高阶函数有关,它让您从处理数据流的角度进行思考。使用 FP,您可以解决语言问题,例如 union、intersection、diff、map、flatmap 和 reduce。
但仅 FP 无法在分布式计算环境中工作。在 OSCON 2014 上,我了解了一些将 FP 语言与 Hadoop 集成的开源项目。请参阅Functional Programming and Big Data 对三个此类项目的比较评估。 Netflix Pig Pen、Cascalog 和 Apache Spark。
【解决方案2】:
其中一个原因是拥有不可变变量可以让您并行执行代码并且非常容易扩展。