RDD

创建RDD
从本地文件创建

 # 1.初始化 SparkContext,该对象是 Spark 程序的入口
    sc=SparkContext('local','sapp')
# 文本文件 RDD 可以使用创建 SparkContext 的t extFile 方法。此方法需要一个 URI的 文件(本地路径的机器上,或一个hdfs://,s3a://等URI),并读取其作为行的集合
# 2.读取本地文件,URI为:/root/wordcount.txt
    rdd = sc.textFile('/root/wordcount.txt')
# 3.使用 rdd.collect() 收集 rdd 的内容。 rdd.collect() 是 Spark Action 算子,在后续内容中将会详细说明,主要作用是:收集 rdd 的数据内容
    result=rdd.collect()
# 4.打印 rdd 的内容
    print(result)

用数组创建

data =[("spark",2),("hadoop",6),("hadoop",4),("spark",6)]
rdd =sc.parallelize(data)

RDD简单操作

 data =[("spark",2),("hadoop",6),("hadoop",4),("spark",6)]
 rdd =sc.parallelize(data)
  rdd.collect()

Out[102]: [('spark', 2), ('hadoop', 6), ('hadoop', 4), ('spark', 6)]

rdd_1 = rdd.mapValues(lambda x : (x,1))
rdd_1.collect()

Out[103]: [('spark', (2, 1)), ('hadoop', (6, 1)), ('hadoop', (4, 1)), ('spark'
, (6, 1))]

1  rdd_2 = rdd_1.reduceByKey(lambda x,y : (x[0]+y[0],x[1] + y[1]))
2  rdd_2.collect()

Out[104]: [('hadoop', (10, 2)), ('spark', (8, 2))]

1  rdd_3 = rdd_2.mapValues(lambda x : (x[0] / x[1]))
2  rdd_3.collect()
Out[105]: [('hadoop', 5.0), ('spark', 4.0)]
1  rdd \
2  .mapValues(lambda x : (x,1)) \
3  .reduceByKey(lambda x,y : (x[0]+y[0],x[1] + y[1])) \
4  .mapValues(lambda x : (x[0] / x[1]))  \
5  .collect()
Out[106]: [('hadoop', 5.0), ('spark', 4.0)]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值