spark学习笔记:flatMap()(API操作报错)
来源:互联网 发布:云游seo 编辑:程序博客网 时间:2024/06/07 17:07
适用版本2.2
scala
以本地模式进入spark-shell:
spark-shell --master local[4]
下载Fast Data Processing with Spark 2nd Edition一书中第二章用到的数据集spam.data,此数据集内全是由空格分隔的浮点数:
https://github.com/xsankar/fdps-vii/tree/master/data
加载此文件并计算行数:
val rdd=sc.textFile("/home/daya/shared_dir/spam.data");rdd.count;
输出与VCCode统计结果一致:
对rdd的每行数据按空格切分得到新rdd2:
val rdd2 = rdd.map(line=>line.split(" "));
注意rdd是字符型数据集,而切分后的rdd2是数组型数据集:
再对rdd使用flatMap()方法,同样对每行按空格切分得到新rdd3:
val rdd3 = rdd.flatMap(line=>line.split(" "));
考察map()与flatMap()的差异:
不难看出这个例子中map()构造了 一个二维数组,每行是一个一维数组;而flatMap()则消除了行的概念,将所有元素全部构建到一个一维数组中,这被称作扁平化处理。
将字符数据集转换为浮点数据集:
val rdd4=rdd3.map(_.toDouble)
简单数字数据集常用的方法:
rdd4.count;//元素总数rdd4.sum;//元素总和rdd4.max;rdd4.min;
Java
因为Java没有shell,所以打开eclipse新建Java类,代码如下:
package daya.sparkdemo;import java.util.Arrays;import java.util.Iterator;import java.util.List;import org.apache.spark.SparkConf;import org.apache.spark.SparkFiles;import org.apache.spark.api.java.JavaRDD;import org.apache.spark.api.java.JavaSparkContext;import org.apache.spark.api.java.function.FlatMapFunction;public class flatMapDemo { public static void main( String[] args ) { SparkConf conf =new SparkConf(); conf.setMaster("local[4]"); conf.setAppName("sparkdemo"); JavaSparkContext jsc=new JavaSparkContext(conf); JavaRDD<String> jrdd=jsc.textFile("/home/daya/shared_dir/spam.data"); JavaRDD<String> jrdd2=jrdd.flatMap(new FlatMapFunction<String, String>() { public Iterator<String> call(String item) throws Exception { return (Iterator<String>) Arrays.asList(item.split(" ")); } }); List<String> list=jrdd2.collect(); for(String item:list) { System.out.println(item); } jsc.close(); }}
运行报错,暂未解决:java.util.Arrays$ArrayList cannot be cast to java.util.Iterator
阅读全文
0 0
- spark学习笔记:flatMap()(API操作报错)
- Spark操作-map和flatMap
- Spark学习笔记 --- Spark中Map和FlatMap转换的区别
- spark flatmap
- spark flatmap
- Spark学习笔记:Pregel API
- spark中flatMap函数用法--spark学习(基础)
- spark学习-16-Spark的Map()和FlatMap()函数使用
- Spark学习笔记-HBase操作
- [RxJava学习]操作符flatMap源码分析
- Scala学习笔记23【List 的map、flatMap、foreach、filter操作实战】
- spark简单操作——map flatmap filter distinct
- spark RDD操作map与flatmap的区别
- 3.2 Spark RDD 基本转换操作1-map、flatMap、distinct
- spark学习笔记:使用API初始化SparkContext
- SPark算子学习之FlatMap和Glom和randomSplit
- Spark map flatMap
- spark:map mapPartitions flatmap
- Spring(2.3.22 IOC )
- CF AIM Tech Round 4上紫记
- 关于for循环的优化问题
- 简单的opencv GUI库
- ViewStub Gone的区别
- spark学习笔记:flatMap()(API操作报错)
- 第2章 空间配接器(allocator)
- 【PAT】【Advanced Level】1076. Forwards on Weibo (30)
- (CodeForces
- 阿里云CentOS 6.5安装配置LNMP服务器(Nginx+PHP+MySQL)
- C语言学习笔记——关于 .obj 文件的理解
- 年中总结--一切才只是刚刚开始
- 数据结构 求链表的长度以及用冒泡排序的算法对链表中的值进行排序
- Mac输入框消失解决