org.apache.spark

1.RDD介绍:
RDD,弹性分布式数据集,即分布式的元素集合。在spark中,对所有数据的操作不外乎是创建RDD、转化已有的RDD以及调用RDD操作进行求值。在这一切的背后,Spark会自动将RDD中的数据分发到集群中,并将操作并行化。
Spark中的RDD就是一个不可变的分布式对象集合。每个RDD都被分为多个分区,这些分区运行在集群中的不同节点上。RDD可以包含Python,Java,Scala中任意类型的对象,甚至可以包含用户自定义的对象。
用户可以使用两种方法创建RDD:读取一个外部数据集,或在驱动器程序中分发驱动器程序中的对象集合,比如list或者set。
RDD的转化操作都是惰性求值的,这意味着我们对RDD调用转化操作,操作不会立即执行。相反,Spark会在内部记录下所要求执行的操作的相关信息。我们不应该把RDD看做存放着特定数据的数据集,而最好把每个RDD当做我们通过转化操作构建出来的、记录如何计算数据的指令列表。数据读取到RDD中的操作也是惰性的,数据只会在必要时读取。转化操作和读取操作都有可能多次执行。

2.创建RDD数据集

1
JavaSparkContext sc=JavaSparkContext.getSparkContext();
JavaRDD<String> lines = sc.textFile(file流);

2 JavaRDD<String> temp=sc.parellalize(list列表)

3 JavaRDD 转化为list 
List<String> list1 =list.collect();

4 合并RDD
JavaRDD<String> list2=temp.union(temp2);

5取值
temp.take(i)  获取rdd的前i个值

6 传递函数 
avaRDD<String> errorLines=lines.filter(
        new Function<String, Boolean>() {
            public Boolean call(String v1)throws Exception {
                return v1.contains("error");
            }
        }
);
Function<T,R>: R call(T) 接收一个输入值并返回一个输出值,用于类似map()filter()的操作中
Function<T1,T2,R>:  
R call(T1,T2)接收两个输入值并返回一个输出值,用于类似aggregate()fold()等操作中
FlatMapFunction<T,R>    
Iterable <R> call(T)接收一个输入值并返回任意个输出,用于类似flatMap()这样
Function<T,R> R call(T)    
    接收一个输入值并返回一个输出值,用于类似map()filter()的操作中
Function<T1,T2,R>   
R call(T1,T2)
接收两个输入值并返回一个输出值,用于类似aggregate()fold()等操作中
FlatMapFunction<T,R>    
Iterable <R> call(T)
接收一个输入值并返回任意个输出,用于类似flatMap()这样的操作中

转自:http://blog.csdn.net/xiefu5hh/article/details/51782319

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值