首页 > 其他分享 >pyspark 常用action 算子

pyspark 常用action 算子

时间:2023-10-16 17:55:22浏览次数:24  
标签:sc parallelize pyspark items print rdd collect 算子 action

from pyspark import SparkConf, SparkContext

conf = SparkConf().setAppName("test_SamShare").setMaster("local[4]")
sc = SparkContext(conf=conf)

# 1. collect 指的是把数据汇集到driver端 ,便于后续操作

rdd = sc.parallelize(range(0, 5))
rdd_collect = rdd.collect()
print(rdd_collect)

# [0, 1, 2, 3, 4]

# 2.first 取第一个元素

rdd = sc.parallelize(['a', 'b', 'c'])
print(rdd.first())

# a

# 3. collectAsMap :转换为dict,使用这个要注意不要对大数据使用,不然全部加载到driver端会爆内存

rdd = sc.parallelize([(1, 2), (3, 4)])
print(rdd.collectAsMap())

# {1: 2, 3: 4}

# 4. reduce 逐步对两个元素进行操作
rdd = sc.parallelize(range(10), 5)
print(rdd.collect())
print(rdd.reduce(lambda x, y: x+y))

# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 45

# 5.countByKey/countByValue

rdd = sc.parallelize([("a", 1), ("b", 2), ("a", 1)])
print(rdd.countByKey().items())
print(rdd.countByValue().items())


# dict_items([('a', 2), ('b', 1)])
# dict_items([(('a', 1), 2), (('b', 2), 1)])

# 6.take 相当于取几个数据到driver端

rdd = sc.parallelize([("a", 1), ("b", 2), ("a", 1)])
print(rdd.take(2))

# [('a', 1), ('b', 2)]

# 7.saveAsTextFile 保存rdd成text文件到本地

text_file = "./rdd.txt"
rdd = sc.parallelize(range(5))
rdd.saveAsTextFile(text_file)

# 8.takesample 随机取数

rdd = sc.textFile("./word.txt", 4) # 4代表分区数量
rdd_sample = rdd.takeSample(True, 2, 0)  # withReplacement 参数1:代表是否是有放回抽样
print(rdd_sample)

# 9.foreach 对每一个元素执行某种操作,不生成新的RDD

rdd = sc.parallelize(range(5))
accum = sc.accumulator(0)
rdd.foreach(lambda x : accum.add(x))
print(accum.value)

# 10

标签:sc,parallelize,pyspark,items,print,rdd,collect,算子,action
From: https://www.cnblogs.com/whiteY/p/17767982.html

相关文章

  • pyspark 常用Transform算子
    frompysparkimportSparkConf,SparkContextconf=SparkConf().setAppName("test_SamShare").setMaster("local[4]")sc=SparkContext(conf=conf)#1.map对每一个元素进行一个映射rdd=sc.parallelize(range(1,11),4)rdd_map=rdd.map(lambdax:x*2......
  • 论文阅读(三)——Channel-wise Topology Refinement Graph Convolution for Skeleton-Ba
    代码实验pythonmain.py--configconfig/nturgbd-cross-subject/default.yaml--work-dirwork_dir/ntu/csub/ctrgcn--device0--num-worker0综述......
  • Programming abstractions in C阅读笔记:p179-p180
    《ProgrammingAbstractionsInC》学习第60天,p179-p180总结。一、技术总结1.palindrome(回文)(1)包含单个字符的字符串(如"a"),或者空字符串(如"")也是回文。(2)示例:“level”、"noon"。2.predicatefunction(1)predicate的意思pre-("forth")+*deik-("show"),“t......
  • 使用GitHub Actions自动部署Hexo博客
    准备两个仓库源码库:hexo源码仓库网页库:{username}.github.io目标在源码库编写博客,推送到远端后,触发GithubActions。Actions配置hexo环境,生成hexo文件后,推送到网页库。推送网页到网页库的权限问题,通过Github的accesstoken解决(https://github.com/settings/token......
  • Vue3| Pinia 的 action 异步写法
    import{defineStore}from'pinia'import{ref}from'vue'importaxiosfrom'axios'exportconstuseChannelStore=defineStore('channel',()=>{  constchannelList=ref([])  constgetList=()=>......
  • Spring源码解析——@Transactional注解的声明式事物介绍
    正文面的几个章节已经分析了spring基于@AspectJ的源码,那么接下来我们分析一下Aop的另一个重要功能,事物管理。最全面的Java面试网站事务的介绍1.数据库事物特性原子性多个数据库操作是不可分割的,只有所有的操作都执行成功,事物才能被提交;只要有一个操作执行失败,那么所有的操作......
  • 如何在ActionScript 3中将"Null"(一个真实的姓氏!)传递给SOAP Web服务
    内容来自DOC[https://q.houxu6.top/?s=如何在ActionScript3中将"Null"(一个真实的姓氏!)传递给SOAPWeb服务](https://q.houxu6.top/?s=如何在ActionScript3中将"Null"(一个真实的姓氏!)传递给SOAPWeb服务)我们有一位员工的姓氏是“Null”。当使用该姓氏作为搜索条件时,我们的员......
  • actions
    actions:处理异步操作需求:一秒钟之后,修改state的count成666说明:mutations必须是同步的(便于监测数据变化,记录调试) actions使用步骤:1.提供actions方法:(actions本质上不是直接修改state的数据,因为要修改state必须要经过mutations,所以就算想要处理异步,也是在act......
  • Fi-GNN: Modeling Feature Interactions via Graph Neural Networks for CTR Predicti
    目录概Fi-GNN代码LiZ.,CuiZ.,WuS.,ZhangX.andWangL.Fi-GNN:Modelingfeatureinteractionsviagraphneuralnetworksforctrprediction.CIKM,2019.概"图网络"用在精排阶段(算哪门子图网络啊).Fi-GNN一个item可能有多种field,比如:\[\underbrace......
  • 使用Github Action实现构建、发布到 nuget.org
    使用GithubAction实现构建、发布到nuget.orgGitHubActions是GitHub提供的持续集成和持续部署(CI/CD)工具,它能够自动化构建、测试和部署你的项目。在这篇教程中,我们将探讨如何使用GitHubActions来构建一个.NET项目,并将它发布到NuGet.org。配置NuGetAPI密钥首先进入nuget......