第一个RDD,几个数据探查命令

1、RDD是个什么东西?

   现在也不能非常好的解释,但是这又是一个必须用到的基础概念,所以自己做一个浅显粗陋的理解。就当其是一个数据存储类型,就跟Python里有dataframe一样,不过它所存储的数据会在集群里多台机器上存储,而不是像之前的Python里的dataframe一样是存储在一台机器上。

2、REPL

  粗浅理解,就是交互式编程,跟Python的jupyter notebook一样,写一段代码,回车可以有结果展现,很适合前期数据简单查看。

 

3、做一个RDD过程实例(也有别的方式,有些过程自己搞的复杂,为了熟悉一些命令的用法)

3.1数据准备

(1)进入到准备放置文件的文件夹,利用如下命令新建一个文件及加入一行数据

echo a,b,c,d > aa.csv

(2)还可以继续追加

echo 1,2,3,4>>aa.csv

(3)也可以直接进入文件编辑

vim aa.csv

(4)最终我在里面加入了3行数据

a,b,c,d

1,2,3,4

4,5,6,7

(5)把文件上传到hdfs上

hadoop fs -put  /ETL/linkage/aa.csv   /input/aa.csv

 

3.2创建RDD

val aa=sc.textFile(“/input/aa.csv)

a,b,c,d

1,2,3,4

4,5,6,7

 

3.3RDD数据探查

(1)查看一行数据

aa.first

结果:a,b,c,d

(2)查看多行数据

aa.take(2)

结果:a,b,c,d

      1,2,3,4

(3)查看所有数据

val aal=aa.collect()

结果:a,b,c,d

      1,2,3,4

      4,5,6,7

 

(4)按行打印

aal.foreach(println)

结果:a,b,c,d

      1,2,3,4

      4,5,6,7

 

(5)初步定义个函数

def isHeader(line:String)=line.contains(“a”)

(6)函数调用

 aal.filter(isHeader).foreach(println)

结果:a,b,c,d

以上这步操作实现了过滤csv文件的标题,如果取反想得到csv文件的数据,则可以有下方三种表达方式:

aal.filter(x => !isHeader(x)).length

或者:

aal.filter(!isHeader(_)).length

或者:

aal.filterNot(isHeader).length

结果:

2

 

我考虑下次文章记录还是加一点图片吧,这样更好阅读一些。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值