Spark 使用Python在pyspark中运行简单wordcount
2017-03-27 17:47
676 查看
0.参考文章
Spark入门(Python版) Spark1.0.0 多语言编程之python实现
Spark编程指南(python版)
1.pyspark练习
进入到Spark目录,
1.1 修改log4j.properties
Spark(和PySpark)的执行可以特别详细,很多INFO日志消息都会打印到屏幕。开发过程中,这些非常恼人,因为可能丢失Python栈跟踪或者print的输出。为了减少Spark输出– 你可以设置
$SPARK_HOME/conf下的log4j。首先,拷贝一份
$SPARK_HOME/conf/log4j.properties.template文件,去掉“.template”扩展名。
cp $SPARK_HOME/conf/log4j.properties.template $SPARK_HOME/conf/log4j.properties1
1
编辑log4.properties,将INFO替换为WARN
替换后如下:
# 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/dd HH:mm:ss} %p %c{1}: %m%n # Settings to quiet third party logs that are too verbose 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=WARN1
2
3
4
5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
现在运行pyspark,输出消息将会更简略。
然后采用默认的设置运行pyspark
./bin/pyspark
配置master参数,使用4个Worker线程本地化运行Spark(local[k]应该根据运行机器的CPU核数确定)
./bin/pyspark –master local[4]
增加的–py-files,是将指定的文件加到search path,以便之后import
./bin/pyspark –master local[4] –py-files code.py
MASTER_URL | 含义 |
---|---|
local | 使用一个Worker线程本地化运行Spark(默认) |
local[k] | 使用K个Worker线程本地化运行Spark |
local[*] | 使用K个Worker线程本地化运行Spark(这里K自动设置为机器的CPU核数) |
spark://HOST:PORT | 连接到指定的Spark单机版集群(Spark standalone cluster)master。必须使用master所配置的接口,默认接口7077.如spark://10.10.10.10:7077 |
mesos://HOST:PORT | 连接到指定的Mesos集群。host参数是Moses master的hostname。必须使用master所配置的接口,默认接口是5050. |
yarn-client | 以客户端模式连接到yarn集群,集群位置由环境变量HADOOP_CONF_DIR决定. |
yarn-cluster | 以集群模式连接到yarn集群,同样由HADOOP_CONF_DIR决定连接到哪儿 |
textFile = sc.textFile("file:///usr/local/cluster/spark/README.md")1
2
1
2
如果使用本地文件系统的路径,那么这个文件在工作节点上也应该可以按照这个路径读到。即, 要么把文件copy到所有工作节点,或者使用网络共享之。
Spark默认从HDFS中读取数据,如果输入
textFile = sc.textFile(“./README.md”)
会报错:
Input path does not exist: hdfs://manage02:9000/user/root/README.md1
1
或者:
登录Hadoop主节点 将要进行wordcount的文件上传到HDFS上,然后再从HDFS中读入数据。
hadoop fs -put /user/root/README.md input # 然后进入pyspark textFile = sc.textFile("hdfs://manage02:9000/user/root/README.md")1
2
3
1
2
3
Spark的文件输入方法,可以run在目录,压缩文件上,支持通配符。
如:
textFile("/my/directory") textFile("/my/directory/*.txt") textFile("/my/directory/*.gz")1
2
3
1
2
3
textFile.count() # textFile返回的每一行的记录,相当于文件行数 textFile.first() u'# Apache Spark' linesWithSpark = textFile.filter(lambda line:"Spark" in line) # filter方法创建一个新的RDD数据集(包含有'Spark'的行) linesWithSpark.count()1
2
3
4
5
6
1
2
3
4
5
6
2.构建Python-Spark程序
1.加入所需的Spark模块
from pyspark import SparkContext, SparkConf ...1
2
3
1
2
3
2.创建一个SparkContext对象(在pyspark shell里是自动创建好的)
sc = SparkContext(master, appname) sc = SparkContext(“local”,”Page Rank”)
相关文章推荐
- Spark 使用Python在pyspark中运行简单wordcount
- idea+maven+scala创建wordcount,打包jar并在spark on yarn上运行(可以使用)
- Spark学习笔记-如何运行wordcount(使用jar包)
- windows下使用idea maven配置spark运行环境、运行WordCount例子以及碰到的问题
- hadoop学习(7)—— 使用yarn运行mapreduce一个简单的wordcount示例
- Spark下使用python写wordCount
- Spark及HDFS环境下使用python的wordcount实例
- Spark上提交运行简单WordCount程序---Spark学习笔记(1)
- 用hadoop运行一个简单程序WordCount
- spark学习1——配置hadoop 单机模式并运行WordCount实例(ubuntu14.04 & hadoop 2.6.0)
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群-配置Hadoop-伪分布模式并运行Wordcount(2)
- Eclipse下运行Hadoop程序(以WordCount为例,使用Maven)
- Spark教程-构建Spark集群-配置Hadoop单机模式并运行Wordcount(1)
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群-配置Hadoop单机模式并运行Wordcount(1)
- 将java开发的wordcount程序部署到spark集群上运行
- 联想ThinkPad S3-S440虚拟机安装,ubuntu安装,Hadoop(2.7.1)详解及WordCount运行,spark集群搭建
- 使用命令行编译、打包、运行WordCount--不用eclipse
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群-配置Hadoop伪分布模式并运行Wordcount示例(1)
- 【Spark亚太研究院系列丛书】Spark实战高手之路-第一章 构建Spark集群-配置Hadoop伪分布模式并运行Wordcount示例(1)
- Eclipse 编写的spark版WordCount运行在spark上