【python】spark基础应用记录01

最近开始做spark的期末作业了,记一下一些实验里反复用到的操作技巧,非常个人向,很多记录语言。
操作主要基于Linux的小黑框,没有采用脚本运行。

读入数据

本地数据读取

sc.textFile("file:///localhost/text.txt")

千万记得使用 file:// 在本地地址的前面,否则就会报错。
这样提取出来的数据已经是RDD了,每个算子是文件里的一行形成的字符串。

HDFS上的数据读取

sc.textFile("hdfs://192.168.88.128:9000/text.txt")
sc.textFile("hdfs://192.168.88.128:9000/file/*.txt")      #读取该文件夹下的所有txt文件

同上,必须添加 hdfs:// 在地址前

输出数据到屏幕

单独取前几行数据

rdd.first()                #输出第一行
rdd.take(rows)               #输出前rows行
rdd.takeOrdered(rows)           #输出前rows行且由小到大排序,倒序需加参数(key=lambda x: -x)

rows是需要显示的行数的值,这个值对于这两个方法都是必填的,如果输入的值大于数据的数量,数据会被全部输出。

显示全部数据

rdd.collect()

输出DataFrame

  df.show(rows,Ture/False)

rows在这个方法中不是必要参数,如果不输入该参数,数据大于20时它仅输出20条,否则全部输出。
后面那个布尔值参数是控制是否要把每个元素的值统一宽度输出,默认值为Ture,在默认的情况下,如果某个值是字符串并长度较长,输出时会被省略后面的部分,变成“xxxxxxxx…”的状态。因此如果需要保证每个元素都全部显示,需要将这个值改成Flase。
需要注意的是,后面这个布尔值是不能单独使用的,使用它必须要先设rows。

RDD操作

list转RDD

sc.parallelize(list)         #eg:list= ['a','b','c'] , 此时用take(3)可输出为['a','b','c']

该函数可以将各种数据转为RDD,遇到前一个数据被.countByKey().items()之后,可以用这个转回来方便继续操作。

转(key,value)格式
spark是类Hadoop MapReduce的通用的并行计算框架,需要理解MapReduce的操作过程才能理解spark的用法。

(待更新)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值