Spark Programming Guide (Python) Spark编程指南 (一)

来源:互联网 发布:vfp九九乘法表编程 编辑:程序博客网 时间:2024/06/05 17:00

PySpark编程前的细节:

 

1.  首先对PySpark输出内容进行简化:

Spark(和PySpark)的执行可以特别详细,很多INFO日志消息都会打印到屏幕。

为了减少Spark输出,可以设置/usr/local/spark下的log4j。首先,拷贝一份/usr/local/spar/conf/log4j.properties.template文件,去掉“.template”扩展名。

cp ./conf/log4j.properties.template./conf/log4j.properties

 

编辑新文件,用WARN替换代码中出现的INFO。

gedit ./conf/log4j.properties

 

# Set everything to be logged to the console

 log4j.rootCategory=WARN, console

 log4j.appender.console=org.apache.log4j.ConsoleAppender

 log4j.appender.console.target=System.err

 log4j.appender.console.layout=org.apache.log4j.PatternLayout

 log4j.appender.console.layout.ConversionPattern=%d{yy/MM/ddHH:mm:ss} %p %c{1}: %m%n

# Settings to quiet third party logs that are tooverbose

 log4j.logger.org.eclipse.jetty=WARN

 log4j.logger.org.eclipse.jetty.util.component.AbstractLifeCycle=ERROR

 log4j.logger.org.apache.spark.repl.SparkIMain$exprTyper=WARN

 log4j.logger.org.apache.spark.repl.SparkILoop$SparkILoopInterpreter=WARN

 

2.  主要对Python接口进行介绍:

a)  为什么选择Spark?

Spark拥有多种语言的函数式编程API,提供了除map和reduce之外更多的运算符,这些操作是通过一个称作弹性分布式数据集(resilient distributeddatasets, RDDs)的分布式数据框架进行的。

由于RDD可以被缓存在内存中,Spark对迭代应用特别有效,因为这些应用中,数据是在整个算法运算过程中都可以被重用。大多数机器学习和最优化算法都是迭代的,使得Spark对数据科学来说是个非常有效的工具。另外,由于Spark非常快,可以通过类似Python REPL(在控制台交互式执行python代码)的命令行提示符交互式访问。

 

b)  核心组件介绍

         i.     SparkCore:包含Spark的基本功能;尤其是对RDD进行Transformations和Actions以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的。

 

       ii.     Spark SQL:提供通过Apache Hive的SQL变体Hive查询语言(HiveQL)与Spark进行交互的API。每个数据库表被当做一个RDD,Spark SQL查询被转换为Spark操作。

http://spark.apache.org/docs/latest/api/python/pyspark.sql.html

 

      iii.     SparkStreaming:允许对实时数据流进行处理和控制。很多实时数据库(如Apache Store)可以处理实时数据。Spark Streaming允许程序能够像普通RDD一样处理实时数据。

http://spark.apache.org/docs/latest/api/python/pyspark.streaming.html

 

       iv.     MLlib:一个常用机器学习算法库,算法被实现为对RDD的Spark操作。这个库包含可扩展的学习算法,比如分类、回归等需要对大量数据集进行迭代的操作。之前可选的大数据机器学习库Mahout,将会转到Spark,并在未来实现。

http://spark.apache.org/docs/latest/api/python/pyspark.mllib.html

         v.     GraphX:控制图、并行图操作和计算的一组算法和工具的集合。GraphX扩展了RDD API,包含控制图、创建子图、访问路径上所有顶点的操作。

 

1.  Java API介绍:

http://spark.apache.org/docs/latest/api/java/index.html

 

2.  Scala API介绍

http://spark.apache.org/docs/latest/api/scala/index.html

 

3.  R API介绍

http://spark.apache.org/docs/latest/api/R/index.html

 

4.  PythonAPI介绍

http://spark.apache.org/docs/latest/api/python/index.html

 

5.  PythonSpark Quick Start(对看ProgrammingGuide有帮助)

http://spark.apache.org/docs/latest/quick-start.html

 

0 0
原创粉丝点击