08_spark_core_数据读存_text文件

08_spark_core_数据读存_text文件

  • 文件类数据读取与保存
  • 总结:

文件类数据读取与保存

1)创建包名:com.atguigu.readAndSave
1)基本语法
(1)数据读取:textFile(String)
(2)数据保存:saveAsTextFile(String)
2)代码实现

package com.atguigu.readAndSave

import org.apache.spark.rdd.RDD
import org.apache.spark.{
     SparkConf, SparkContext}

/**
 * @author dxy
 * @date 2021/2/25 13:04
 */
object Operate_Text {
     
  def main(args: Array[String]): Unit = {
     
    //TODO 1.创建SparkConf并设置App名称
    val conf: SparkConf = new SparkConf().setAppName("SparkCoreTest").setMaster("local[*]")

    //TODO 2.创建SparkContext,该对象是提交Spark App的入口
    val sc: SparkContext = new SparkContext(conf)

    //text文件的读取
    val rdd: RDD[String] = sc.textFile("D:\\DevelopmentTools\\spark\\SparkCoreTest1109\\input\\1.txt")
    val rdd2: RDD[String] = sc.textFile("hdfs://hadoop102:8020/sparkinput/1.txt")

    //text文件的存储
    val etlRDD: RDD[String] = rdd2.filter(
      line => line.contains("spark")
    )
    etlRDD.coalesce(1).saveAsTextFile("D:\\DevelopmentTools\\spark\\SparkCoreTest1109\\sparkout2")

    //TODO 3.关闭连接
    sc.stop()

  }
}

总结:

1.textFile可以读本地文件也可以读集群文件,按行读取
2.text格式文件的存储可以使用save行动算子
saveAsTextFile------保存text格式文件
saveAsSequence------保存二进制格式文件
saveAsObject--------保存二进制格式文件
存储可以存储到本地或者集群。

另外对于文件读取要灵活处理,比如:保存文件,文件内容较少可以保存在一个文件中,可以灵活使用coalesce()算子,先改分区个数
即:rdd.coalesce(1)

08_spark_core_数据读存_text文件_第1张图片

你可能感兴趣的:(大数据,spark3.0,spark_core,大数据,spark)