Spark中函数addFile和addJar函数介绍
来源:互联网 发布:淘宝 假货 投诉 编辑:程序博客网 时间:2024/06/06 18:45
尊重作者,转载至:https://www.iteblog.com/archives/1704.html
我们在使用Spark的时候有时候需要将一些数据分发到计算节点中。一种方法是将这些文件上传到HDFS上,然后计算节点从HDFS上获取这些数据。当然我们也可以使用addFile函数来分发这些文件。
addFile
方法可以接收本地文件(或者HDFS上的文件),甚至是文件夹(如果是文件夹,必须是HDFS路径),然后Spark的Driver和Exector可以通过SparkFiles.get()
方法来获取文件的绝对路径(Get the absolute path of a file added through SparkContext.addFile()),addFile
的函数原型如下:
def addFile(path: String)
def addFile(path: String, recursive: Boolean)
addFile把添加的本地文件传送给所有的Worker,这样能够保证在每个Worker上正确访问到文件。另外,Worker会把文件放在临时目录下。因此,比较适合用于文件比较小,计算比较复杂的场景。如果文件比较大,网络传送的消耗时间也会增长。
path:可以是local、hdfs(任何hadoop支持的文件系统)、HTTP、HTTPS、FTP等。local方式时,在windows下使用绝对路径时需要加个“/”,如“d:/iteblog.data”得写成“/d:/iteblog.data”或“file:///d:/iteblog.data”。
recursive:如果path是一个目录,那么我们可以设置recursive
为true,这样Spark会递归地分发这个路径下面的所有文件到计算节点的临时目录。
通过SparkFiles.get(path:String)
获取添加的文件路径。
varpath ="/user/iteblog/ip.txt"sc.addFile(path)valrdd =sc.textFile(SparkFiles.get(path))
上面的实例展示了如何在Driver中获取分发出去的文件,我们还可以在Exector获取到分发的文件:
varpath ="/user/iteblog/ip.txt"sc.addFile(path)valrdd =sc.parallelize((0to 10))rdd.foreach{ index => valpath =SparkFiles.get(path) ......}
如果我们添加的是压缩文件,比如
.tar.gz
、.tgz
或者.tar
,Spark会调用Linux的解压缩命令tar
去解压缩这些文件。 addJar
添加在这个SparkContext实例运行的作业所依赖的jar。,其函数原型如下:
defaddJar(path:String)
path:可以是本地文件(local file)、HDFS文件(其他所有的Hadoop支持的文件系统也可以)、HTTP、 HTTPS 或者是FTP URI文件等等。
其实Spark内部通过spark.jars
参数以及spark.yarn.dist.jars
函数传进去的Jar都是通过这个函数分发到Task的。(内部是把spark.jars
以及spark.yarn.dist.jars的jar进行了合并
)
- Spark中函数addFile和addJar函数介绍
- spark的RDD中的action(执行)和transformation(转换)两种操作中常见函数介绍
- Spark中parallelize函数和makeRDD函数的区别
- Spark中parallelize函数和makeRDD函数的区别
- Spark中parallelize函数和makeRDD函数的区别
- lodash中pick和omit函数介绍
- msvbvm60中函数介绍
- spark学习笔记:集群模式下的addFile()操作(存疑)
- spark 函数
- javascript 中prototype 以及类函数、对象函数、和原型函数的介绍
- spark中 transformation和action介绍
- spark中flatMap函数用法--spark学习(基础)
- Spark: sortBy和sortByKey函数详解
- Spark: sortBy和sortByKey函数详解
- spark常用函数:transformation和action
- Spark: sortBy和sortByKey函数详解
- Spark: sortBy和sortByKey函数详解
- spark常用函数:transformation和action
- [裸题][扫描线] 求矩形面积并
- sqlserver数据库实验一
- 工厂设计模式
- cocos学习笔记(四)文本
- 【lightoj】1141
- Spark中函数addFile和addJar函数介绍
- 【MST】【并查集】【贪心】Graph practice T4 airplane 题解
- Trapping Rain Water
- 用XAMPP在本地安装调试WordPress【图文教程】
- 几种常见Dialog,懒人必收
- static关键字
- d3_v4 shape系列之Arc\Pie\Symbol
- Java控制台乘法表
- ubuntu gdb调试第一次实验总结