RDD,DataFrame,Spark Sql

本文介绍了Spark中的RDD、DataFrame及其操作。RDD可通过sc.textFile、转换现有RDD或parallelize创建。RDD数据统计常使用map配合reduceByKey。DataFrame提供了命名字段,需定义schema,便于按字段名进行统计。创建DataFrame时,可使用Row对象映射rdd并用sqlContex创建。Spark SQL基于DataFrame,需先创建DataFrame并注册为临时表,然后执行SQL语句。
摘要由CSDN通过智能技术生成

RDD API

rdd的获取途径:
(1)利用sc.textFile()从本地文件系统或者hdfs文件系统获得
(2)通过已存在的rdd 进行转换,如map运算
(3)将已有的集合,通过调用sparkcontex的parallelize实现

rdd_test.map(lambda x:(x[1],1)).reduceByKey(lambda x,y:x+y).collect()

使用RDD API进行数据统计,主要是使用map配合reduceByKey。RDD的数据类型只有数据,没有定义Schema。也就是说rdd没有定义字段名,所以只能使用位置来指定某一个字段。如上面代码中的x[1],上面代码的意思是统计x[1]字段每个值的数量。

在得到rdd后,可以用take查看一下数据的格式,以逗号还是空格分隔,是否字段用双引号进行括起来,然后再进行下一步的处理。
若字段用双引号括起来,可以用下面的语句去除双引号,"""表示转义字符,即表示双引号

rdd_test=raw_rdd_test.map(lambda x:x.replace("\"",""))

若字段之间以空格分隔,则用下面的语句进行处理,"\t"表示空格

lines=rdd_test.map(lambda x:x.split("\t"))

DataFrame API
DataFrame是一种分布式数据集合,每一条数据都由几个命名字段组成。spa

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值