大数据入门到精通3-SPARK RDD filter 以及 filter 函数
一。如何处理RDD的filter
1. 把第一行的行头去掉
scala> val collegesRdd= sc.textFile("/user/hdfs/CollegeNavigator.csv")
collegesRdd: org.apache.spark.rdd.RDD[String] = /user/hdfs/CollegeNavigator.csv MapPartitionsRDD[3] at textFile at <console>:24
scala> collegesRdd.count
res1: Long = 504
scala> val header= collegesRdd.first
header: String = "Name","Address","Website","Type","Awards offered","Campus setting","Campus housing","Student population","Undergraduate students","Graduation Rate","Transfer-Out Rate","Cohort Year *","Net Price **","Largest Program","IPEDS ID","OPE ID"
scala> val headerlessRdd= collegesRdd.filter( line=>{ line!= header } )
headerlessRdd: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[2] at filter at <console>:28
这里其实已经使用了一个filter,就是过滤行头的filter。
val filterRdd= headerlessRdd.filter(line =>{
val count=line.split("\",\"")(7)
val len=count.length()
len>4
})
scala> filterRdd.count
res8: Long = 121
得到学生数目大于10000的学校
二、写filter函数
上面的例子也可以写一个filter函数
def filterfunc(line :String):Boolean ={
val count=line.split("\",\"")(7)
val len=count.length()
len > 4
}
val filterRdd2=headerlessRdd.filter(filterfunc)
会得出如下结果
scala> filterRdd2.count
18/11/20 03:41:33 WARN spark.ExecutorAllocationManager: No stages are running, but numRunningTasks != 0
res10: Long = 121
补充说明一个字符串被split以后是一个字符数组,所有的字符操作参加scala的字符串操作
https://www.yiibai.com/scala/scala_strings.html
或者scala官方网站
https://www.scala-lang.org/
大数据入门到精通3-SPARK RDD filter 以及 filter 函数的更多相关文章
- 大数据入门到精通5--spark 的 RDD 的 reduce方法使用
培训系列5--spark 的 RDD 的 reduce方法使用 1.spark-shell环境下准备数据 val collegesRdd= sc.textFile("/user/hdfs/C ...
- 大数据入门到精通4--spark的rdd的map使用方式
学习了之前的rdd的filter以后,这次来讲spark的map方式 1.获得文件 val collegesRdd= sc.textFile("/user/hdfs/CollegeNavig ...
- 大数据入门到精通16--hive 的条件语句和聚合函数
一.条件表达 case when ... then when .... then ... when ... then ...end select film_id,rpad(title,20," ...
- 大数据入门到精通2--spark rdd 获得数据的三种方法
通过hdfs或者spark用户登录操作系统,执行spark-shell spark-shell 也可以带参数,这样就覆盖了默认得参数 spark-shell --master yarn --num-e ...
- 大数据入门到精通8-spark RDD 复合key 和复合value 的map reduce操作
一.做基础数据准备 这次使用fights得数据. scala> val flights= sc.textFile("/user/hdfs/data/Flights/flights.cs ...
- 大数据入门到精通10--spark rdd groupbykey的使用
//groupbykey 一.准备数据val flights=sc.textFile("data/Flights/flights.csv")val sampleFlights=sc ...
- 大数据入门到精通11-spark dataframe 基础操作
// dataframe is the topic 一.获得基础数据.先通过rdd的方式获得数据 val ny= sc.textFile("data/new_york/")val ...
- 大数据入门到精通6---spark rdd reduce by key 的使用方法
1.前期数据准备(同之前的章节) val collegesRdd= sc.textFile("/user/hdfs/CollegeNavigator.csv")val header ...
- 大数据入门到精通18--sqoop 导入关系库到hdfs中和hive表中
一,选择数据库,这里使用标准mysql sakila数据库 mysql -u root -D sakila -p 二.首先尝试把表中的数据导入到hdfs文件中,这样后续就可以使用spark来dataf ...
随机推荐
- (二)apache atlas配置和运行
上一篇文章,我们已经构建出了altas的安装包,所以我们继续使用安装包配置和运行atlas 首先解压atlas压缩包,授予bin目录下的执行权限 1.默认启动atlas cd atlas/bin/ p ...
- VMware里的linux系统里的命令行里会有bee的声音,要如何关掉
取消bell报警声的方法:登陆linux系统vi /etc/inputrc找到set bell-style none 将前面的#去掉,之后重启系统即可解决声音问题 若不见效可以通过下面的方式解决下be ...
- 安装JavaFX Scene Builder,并配置到Eclipse
转载自:https://www.yiibai.com/javafx/install-javafx-scene-builder-into-eclipse.html 1-JavaFX Scene Buil ...
- 3.linux基本操作命令
2018年2月20日星期二 Linux常见操作命令 Linux 操作命令? ●查看进程是否启用? ps -aux|less ●查看磁盘剩余空间? cat /proc/meminfo 校验内存使用 ●s ...
- ant 标签详解
Ant 开发 Ant的构建文件当开始一个新的项目时,首先应该编写Ant构建文件.构建文件定义了构建过程,并被团队开发中每个人使用.Ant构建文件默认命名为build.xml,也可以取其他的名字.只不过 ...
- hdfs dfsadmin 命令详解
hdfs dfsadmin [-report [-live] [-dead] [-decommissioning]] [-safemode <enter | leave | get | wait ...
- winform 之MDI容器
MDI是指将多控件窗体在同一窗体中打开 1.设置:属性中IsMDIContainer:true; 窗体变为灰色成为MDI窗体容器 2.MDI中一般采用菜单作为打开方式 3.子级窗体在MDI中打开,需先 ...
- Linux 创建用户并赋予 Sudo 权限
01,创建账号 => useradd admin 02,赋予密码 => passwd admin 03,修改 sudo 权限文件,使得该用户可以使用 sudo 命令 vim /etc/su ...
- Project2016下载安装密钥激活教程破解
project2016发布增加了许多功能.Microsoft Office 2016 官方正式版发布!这是微软发布的全新办公软件套件,相比现有Office 2013的变化也不是很大,界面和功能都只是微 ...
- Spring Cloud Config中文文档
https://springcloud.cc/spring-cloud-config.html 目录 快速开始 客户端使用 Spring Cloud Config服务器 环境库 健康指标 安全 加密和 ...