Spark编程、RDD 功能介绍、RDD 元素变换、RDD 元素操作
来源:互联网 发布:端游的没落 知乎 编辑:程序博客网 时间:2024/06/12 21:15
spark中起到driver和worker之间的桥梁的是?SparkContext sc 组织rdd之间依赖关系划分stage的是 DAGSchedule 管理taskSet的是? TaskSchedule 说出rdd中多台机上(worker)上执行的懒算子(变换) map flatMap join(两个rdd数据加一起) groupByKey reduceByKey filter 说出rdd中一台机上(driver)上执行的算子(行为) take collect reduce ...-------------------------------------------------etl:数据加载转换导入。做法:sql/编程(scala)。vi preS.pyfrom pyspark import SparkConf,SparkContext#从pyspark中导入SparkConf(配置文件),SparkContext(sc,driver与work的桥梁)模块,其中SparkContext(sc)依赖于SparkConfconf = SparkConf().setMaster('local[*]').setAppName('he')#[*]指定进程sc = SparkContext(conf=conf)print(sc)rdd = sc.textFile("/user/hadoop/datas.csv")rdd = rdd.mapPartitions(lambda it :[x for x in it if not x == ''])rdd = rdd.map(lambda x:x.split(','))rdd = rdd.map(lambda x:((x[0],x[1]),x[2]))rdd = rdd.reduceByKey(lambda x,y:x+y)datas=rdd.collect()for d in datas: print(d)spark-submit preS.py: spark-submit工具提交Job时Driver运行在本地Client端上也可以spark-submit preS.py 跟一些参数,方便灵活调用!RDD理解: 1.弹性分布式数据集分布在不同集群节点的内存中 2.可以理解成一大数组 3.数组的每一元素是RDD的一分区 4.一个RDD可以分布并被运算在多台计算机节点的内存及硬盘中 5.RDD数据块可以放在磁盘上也可放在内存中(取决于设置) 6.如出现缓存失效或丢失,RDD的分区可以重新计算刷新 7.RDD本身是不能被修改的,但RDD可以通过API (底层采用Scala)被变换生成新的RDD 8.有两类对RDD的操作:变换和操作(变换发生在worker机上,操作在driver机上)RDD类型(2种): 并行集合: rdd = sc.parallelize([21,4,67,34]):将python list数据转换为rdd分布式数据在work hadoop集群上 rdd.collect():将rdd分布式的数据进行收集并展示driver本地Client端上 文件系统数据集: sc.textFile("/user/hadoop/datas.csv")RDD的计算方式(2种) 1. 变换(Transformations) (如:map, filter)的返回值仍然是一个RDD, Transformations操作是Lazy的,也就是说变换只是一些指令集而并不会去马上执行,需要等到有Actions操作的时候才会真正计算给出结果。Lazy Evaluation。 2. 操作(Actions) (如:count, collect),Actions操作会返回结果或把RDD数据输出 到各类系统中。Actions触发Spark启动并找到最优的计算途径。返回值是非 并行化的数据集合比如 PYTHON 中的listRDD的cache(缓存)和persist(持久化操作):当数据海量时使用该技术!! path='hdfs://quickstart.cloudera:8020/user/cloudera/recom/user_friends.csv' rows = sc.textFile(path) rows.persist() # or rows. .cach rows.count() rows.count() 第二个action rows.count() 将不重新从文件中读取RDDreduceByKey :变换reduce :操作countByValue :操作,得到字典foreach :操作,无返回值.driver端看不到,worker端可以看到
阅读全文
0 0
- Spark编程、RDD 功能介绍、RDD 元素变换、RDD 元素操作
- 【spark RDD】RDD编程
- spark filter过滤rdd元素
- spark中的一些RDD操作以及变换
- Spark map 遍历rdd中的每个元素
- [Spark]Spark RDD 指南四 RDD操作
- RDD随机元素
- Spark RDD算子介绍
- Spark RDD算子介绍
- Spark RDD算子介绍
- Spark RDD算子介绍
- Spark RDD介绍
- Spark RDD操作
- spark RDD keyvalue操作
- Spark RDD transformation操作
- spark RDD transformation操作
- spark RDD 基本操作
- spark rdd 操作
- WPF与MVVM的实现(一)MVVM简介
- USB驱动程序之USB设备驱动程序1简单编写
- 324. Wiggle Sort II
- 详细分析Vuex 的应用场景
- easy example of tensorflow in python on creating dataset and training
- Spark编程、RDD 功能介绍、RDD 元素变换、RDD 元素操作
- 微信小程序实现文件,图片上传
- c++之智能指针(二)之直接管理内存
- VIJOS-P1134 24点游戏
- KeyShot Pro(3D渲染动画制作工具)官方中文注册版V7.2.109下载 | keyshot7破解版
- USB驱动程序之概念介绍学习笔记
- 东方财富网股票数据爬虫
- Appium--键盘操作 KEYCODE
- android 正确监听并拦截软键盘的退格键