大数据全系列 教程
1869个小节阅读:465.9k
目录
408考研
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
作用:将RDD的数据写入文本文件中,支持本地文件、HDFS文件系统文件等
保存文件是分布式执行的,所以saveAsTextFile方法执行的数据不会经过Driver的,由每个分区所在的Executor直接将数据写入到目标文件系统中,每个分区产生一个结果文件。
首先通过命令在HDFS文件系统创建文件夹:
xxxxxxxxxx
[root@node1 ~]# hdfs dfs -mkdir -p /spark/output
代码演示:
xxxxxxxxxx
package com.itbaizhan.rdd.action
//1.导入类
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object RddSaveAsTextFile {
def main(args: Array[String]): Unit = {
//2.构建SparkConf对象,并设置本地运行和程序名称
val conf: SparkConf = new SparkConf().setMaster("local[1]").
setAppName("SaveAsTextFile")
//3.使用conf对象构建SparkContet对象
val sc = new SparkContext(conf)
//5.创建RDD对象
val rdd: RDD[String] = sc.parallelize(List("a", "b", "c", "e", "f", "d"), 3)
//6.将rdd中的数据保持到本地磁盘
//rdd.saveAsTextFile("data/output/file")
//7.将数据写入到HDFS文件系统中 node1上namenode需要是active
//rdd.saveAsTextFile("hdfs://node1:9820/spark/output/file")
//8.为了避免active namenode放生变化,所以最好使用mycluster
//UnknownHostException: mycluster 需要将虚拟机中的core-site.xml和hdfs-site.xml文件下载到本项目的resources目录下
rdd.saveAsTextFile("hdfs://mycluster/spark/output/file")
//4.关闭sc对象
sc.stop()
}
}