工作流程分析:
PI例子,构造数组RDD并处理:
#-*- coding: utf-8 -*-
# Dpark的估算pi例子,构造数组RDD处理
from random import random
import dpark
#定义取点总数,越多越精确
N = 100000
#定义map()转换函数,用于将RDD转变成新的RDD
def rand(i):
x = random()
y = random()
return (x*x + y*y) < 1.0 and 1 or 0
#(1)dpark.parallelize将数据分成4块RDD
#(2)利用map()将4块RDD对应转换成新的RDD
#(3)利用reduce()处理每一块RDD,返回计算结果
count = dpark.parallelize(range(N), 4).map(rand).reduce(lambda x,y:x+y)
print 'pi is ', 4.0 * count / N
word count例子,构造文件RDD处理:
#-*- coding: utf-8 -*-
# word count例子,构造文件RDD
from dpark import DparkContext
def word_count(file_path, word):
#指定某个Mesos主机进行沟通
dpark = DparkContext()
#将分布式文件,构造成文件RDD,每块大小为16m
f = dpark.textFile(file_path, splitSize=16<<20)
#用map()转变成新的RDD,再用filter过滤出更新的RDD,最后用count()处理返回结果
print word, 'count:', f.map(lambda line: line.strip()).filter(lambda line: word in line).count()