码迷,mamicode.com
首页 > 其他好文 > 详细

2016.3.3(Spark框架预览,Scala部分应用函数、闭包、高阶函数,关于语义分析的一些心得)

时间:2016-03-04 09:17:57      阅读:391      评论:0      收藏:0      [点我收藏+]

标签:

一、Spark框架预览

  主要有Core、GraphX、MLlib、Spark Streaming、Spark SQL等几部分。

  GraphX是进行图计算与图挖掘,其中主流的图计算框架现在有:Pregal、HAMA、Giraph(这几部分采用超步即同步的方式),而GraphLab与Spark GraphX采用异步的方式进行。它与Spark SQL进行协作时,一般是用SQL语句来进行ETL(Extract-Transform-Load数据仓库技术)然后交给GraphX处理。

  Spark SQL的前身是Shark,而Shark前身又是Hive,Spark摆脱了对Hive的依赖,吸取了Shark的许多优点如采用内存列存储结构,实现快速的GC(一种回收内存机制)以及紧凑的存储结构;字节码生成技术(CG)也加快了查询,并且采用Scala代码优化。Spark SQL采用parse生成Tree,然后在Tree上进行绑定优化等操作,操作的方法是Rule,最终生成可执行的物理计划。

  MLlib是机器学习库,机器学习是人工智能的核心,算法主要有监督、无监督、半监督、强化学习等,也可分为:分类、聚类、回归(回归问题又可以产生正则化、贝叶斯等)、决策树、关联规则、深度学习、人工神经网络、深度学习(由神经网络发展)、降维、集成等。

附:Java内存空间有堆(存储new的对象)、栈(局部变量)、静态存储区(存储一些常量和static声明的变量,一般在编译阶段就分配好)

二、Scala

  1、偏函数于部分应用函数?

  偏函数(patial function)是一个数学概念表示有部分值没有被定义处理,而部分应用函数(patial applied function)则指的是提供少于定义的N个参数;

  2、闭包

  实际上闭包就是指:代码+非局部变量

  3、高阶函数

  高阶函数是Scala函数式编程的一个重要概念,就是将一个函数作为参数返回一个需要的函数

  代码实例

技术分享
1 def mulBy(factor: Double) = (x: Double) => factor * x
2 
3 // mulBy可以产出任何两个数相乘的函数
4 val quintuple = mulBy(5)  // (x: Double) => 5 * x
5 quintuple(20)  // 5 * 20
View Code

三、语义分析

  语义分析是NLP的一种,NLP又是人工智能的一大研究方向,属于一个交叉学科,往往结合大数据能做出很多的智能应用。

 

2016.3.3(Spark框架预览,Scala部分应用函数、闭包、高阶函数,关于语义分析的一些心得)

标签:

原文地址:http://www.cnblogs.com/waveletbob/p/5240860.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!