如何用Python写spark

如何用Python写spark,第1张

1.RDD是PariRDD类型

def add1(line):

return line[0] + line[1]

def add2(x1,x2):

return x1 + x2

sc = SparkContext(appName="gridAnalyse")

rdd = sc.parallelize([1,2,3])

list1 = rdd.map(lambda line: (line,1)).map(lambda (x1,x2) : x1 + x2).collect() #只有一个参数,通过匹配来直接获取(赋值给里面对应位置的变量)

list1 = rdd.map(lambda line: (line,1)).map(lambda x1,x2 : x1 + x2).collect() #错误,相当于函数有两个参数

list2 = rdd.map(lambda line: (line,1)).map(lambda line : line[0] + line[1]).collect() #只有一个参数,参数是Tuple或List数据类型,再从集合的对应位置取出数据

list3 = rdd.map(lambda line: (line,1)).map(add1).collect() #传递函数,将Tuple或List类型数据传给形参

list4 = rdd.map(lambda line: (line,1)).map(add2).collect() #错误,因为输入只有一个,却有两个形参

当RDD是PairRDD时,map中可以写lambda表达式和传入一个函数。

a、写lambda表达式:

可以通过(x1,x2,x3)来匹配获取值;或者使用line获取集合,然后从集合中获取。

b、传入函数

根据spark具体的transaction OR action *** 作来确定自定义函数参数的个数,此例子中只有一个参数,从形参(集合类型)中获取相应位置的数据。

1)输入:welcome = "Hello!"  回车

再输入:print welcome 或者直接 welcome    回车就可以看到输出  Hello!

2)

[html] view plaincopy

welcome = "hello"      

you = "world!"      

print welcome+you

输出:helloworld!

以上使用的是字符串,变量还有几种类型:数,字符串,列表,字典,文件。其他的和别的语言类似,下面先讲下列表:

3)

[html] view plaincopy

my_list = []     //这个就产生了一个空的列表。然后给它赋值     

my_list = [1,2]     

print my_list     

my_list.append(3)    

print  my_list

4)字典:

[html] view plaincopy

contact = {}  

contact["name"]="shiyuezhong"     

contact["phone"]=12332111

5)结合列表和字典:

[html] view plaincopy

contact_list=[]     

contact1={}     

contact1['name']='shiyuezhong'     

contact1['phone']=12332111     

contact_list.append(contact1)     

contact2={}     

contact2['name']='buding'     

contact2['phone']=88888888     

contact_list.append(contact2)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11429851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存