java rdd转化为strign_Spark JavaRDD转换各种Java类型集合

刚开始接触JavaRDD有点迷糊 各种数据类型约束也转得比较头疼 Spring后台返回的Json貌似不能直接用RDD 得用java集合 弄了一天终于有点懂了 写个总结

首先导一个数据集作为RDD

SparkConf sparkConf = new SparkConf().setAppName("MapPartitionsRdd").setMaster("local");

JavaSparkContext sc = new JavaSparkContext(sparkConf);

JavaRDD rdd = sc.textFile("file:///C:/Users/xxx/Desktop/xx.csv");//文件地址

1.JavaRDD转JavaDoubleRDD(首先数据能转为double 不能有字母 空字符不然会格式错误)

JavaDoubleRDD doubleRdd = new JavaDoubleRDD(rdd.rdd());

2.JavaRDD转JavaPairRDD(也就是(K,V)形式)

//lamda表达式

JavaPairRDD pairRdd = doubleRdd.mapToPair(x->{return new Tuple2((x/2),x); });

//内部类

//根据自己需要,在<>里改变数据类型

public JavaRDD sort(int col, JavaRDD rdd) {

JavaPairRDDrdd1 = (JavaPairRDD) rdd.mapToPair(

new PairFunction() {

public Tuple2call(String s) throws Exception {

return new Tuple2(Double.valueOf(s.split(",")[col]), s);

}

}

);

返回的就是元素(x/2,x)的元素 x是RDD里面的元素

3.JavaPairRDD转JavaRDD

JavaRDD list1 = rul.values();//获取pair里面的values集合

JavaRDD list2 = rul.keys();//获取pair里面的Key集合

4.JavaRDD转List

List list1 = rdd.collect();//数据类型要控制好,不然使用的时候会报错

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值