怎么创建RDD,具体的实现方式是怎样
Admin 2022-06-11 群英技术资讯 1036 次浏览
关于“怎么创建RDD,具体的实现方式是怎样”的知识有一些人不是很理解,对此小编给大家总结了相关内容,具有一定的参考借鉴价值,而且易于学习与理解,希望能对大家有所帮助,有这个方面学习需要的朋友就继续往下看吧。Spark RDD 编程的程序入口对象是SparkContext对象(不论何种编程语言)。只有构建出SparkContext, 基于它才能执行后续的API调用和计算 。本质上, SparkContext对编程来说, 主要功能就是创建第一个RDD出来。
RDD的创建可以通过2种方式, 通过并行化集合创建( 本地对象转分布式RDD )和通过读取外部数据源( 读取文件)创建。

并行化创建是指将本地集合转向分布式RDD,这一步的创建是分布式的开端,将本地集合转化为分布式集合。
API如下
rdd=sparkcontext.parallelize(参数1,参数2) #参数1集合对象即可,比如list #参数2分区数完整代码:
# coding: utf8
from pyspark import SparkConf, SparkContext
if __name__ = '__main__':
# e.构建Spark执行环境
conf = SparkConf().setAppName("create rdd").\
setMaster("local[*]"]
sc = SparkContext(conf = conf)
# sc对象的parallelize方法, 可以将本地集合转换成RDD返回给你
data = [1, 2, 3, 4, 5, 6, 7, 8, 9]
rdd = sc.parallelize(data, numSlices = 3)
print(rdd.collect())
获取RDD分区数返回值是Int数字:getNumPartitions API
用法rdd.getNumPartitions()
textFile API
这个API可以读取本地数据,也可以读取hdfs数据
使用方法:
sparkcontext.textFile(参数1,参数2) #参数1,必填,文件路径支持本地文件支持HDFS也支持一些比如S3协议 #参数2,可选,表示最小分区数量。 #注意:参数2话语权不足,spark有自己的判断,在它允许的范围内,参数2有效果,超出spark允许的范围,参数2失效完整代码
1f __nane__ = '__main__:
# B.构建Spark执行环境
conf = SparkConf().setAppNane("create rdd").\
setMaster("local[*]")
sc = SparkContext(conf=conf)
# textFile API 读取文件
rdd = sc.textFile(".…/data/words.txt", 1000)
print(rdd.getNumPartitions())
rdd2 = sc.textFile("hdfs://nodel:8020/input/words.txt", 1888)
#最小分区数给了1060,但是实际就开了85个, spark没有理会你要求最少1008的要求,而是尽是多开。
print(rdd2.getNumPartitions())
print(rdd2.collect())
注意:textFile除非有很明确的指向性,一般情况下,我们不是指分区参数。
读取文件的API,有个小文件读取专用场景:适合读取一堆小文件
用法:
sparkcontext.wholeTextFiles(参数1,参数2) #参数1,必填,文件路径支持本地文件支持HDFS也支持一些比如S3协议 #参数2,可选,表示最小分区数量。 #注意:参数2话语权不足,这个API分区数量最多也只能开到文件数量
这个API偏向于少量分区读取数据,因为这个API表明了自己是小文件读取专用,那么文件的数据很小。分区很多,导致shuffle的几率更高.所以尽量少分区读取数据。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
一个正常运营的产品每天会产生大量的数据,如果把这些数据都收集起来进行分析,不仅会使工作量增加,浪费大量时间,很可能还会得不到想要的分析结果。作为一名数据分析人员,更不应该为了分析而分析,而是应该紧紧围绕你的分析目的(了解现状、分析业务变动原因、预测发展趋势等)去进行分析。所以,在开始数据收集工作之前,就应该先把数据分析的目的梳理清楚,防止出现”答非所问”的数据分析结果。
大数据时代,很多领域都应用了数据分析,这篇文章想要给大家分享的关于数据分析的类型模式,包括描述型,诊断型,预测型,指导型这四种。小编觉得是比较有趣的,感兴趣的朋友就继续往下看吧。
什么是Apache Pig?Apache Pig是MapReduce的一个抽象。它是一个工具/平台,用于分析较大的数据集,并将它们表示为数据流。Pig通常与 Hadoop 一起使用;我们可以使用Apache Pig在Hadoop中执行所有的数据处理操作
除了内置函数之外,Apache Pig还为 User Defined Function(UDF:用户定义函数)提供广泛的支持。使用这些UDF,可以定义我们自己的函数并使用它们。UDF支持六种编程语言,即Java,Jython,Python,JavaScript,Ruby和Groovy。
负责全局的资源管理和任务调度,把整个集群当成计算资源池,只关注分配,不管应用,且不负责容错 ;以前资源是每个节点分成一个个的Map slot和Reduce slot,现在是一个个Container,每个Container可以根据需要运行
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008