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”扩展名。
- 1
- 1
编辑log4.properties,将INFO替换为WARN
替换后如下:
- 1
- 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决定连接到哪儿 |
接下来:
- 1
- 2
- 1
- 2
如果使用本地文件系统的路径,那么这个文件在工作节点上也应该可以按照这个路径读到。即, 要么把文件copy到所有工作节点,或者使用网络共享之。
Spark默认从HDFS中读取数据,如果输入
textFile = sc.textFile(“./README.md”)
会报错:
- 1
- 1
或者:
登录Hadoop主节点 将要进行wordcount的文件上传到HDFS上,然后再从HDFS中读入数据。
- 1
- 2
- 3
- 1
- 2
- 3
Spark的文件输入方法,可以run在目录,压缩文件上,支持通配符。
如:
- 1
- 2
- 3
- 1
- 2
- 3
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
2.构建Python-Spark程序
1.加入所需的Spark模块
- 1
- 2
- 3
- 1
- 2
- 3
2.创建一个SparkContext对象(在pyspark shell里是自动创建好的)
sc = SparkContext(master, appname)
sc = SparkContext(“local”,”Page Rank”)