微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

08_spark_core_数据读存_text文件

08_spark_core_数据读存_text文件@H_404_7@

文件类数据读取与保存

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)

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐