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