首页 > 其他分享 >实验三Spark 读取文件系统的数据

实验三Spark 读取文件系统的数据

时间:2024-01-16 23:56:08浏览次数:27  
标签:文件 读取 HDFS 文件系统 行数 spark Spark

Spark 读取文件系统的数据

(1)在 spark-shell 中读取 Linux 系统本地文件“/home/hadoop/test.txt”,然后统计出文 件的行数; (2)在 spark-shell 中读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在, 请先创建),然后,统计出文件的行数; (3)编写独立应用程序,读取 HDFS 系统文件“/user/hadoop/test.txt”(如果该文件不存在, 请先创建),然后,统计出文件的行数;通过 sbt 工具将整个应用程序编译打包成 JAR 包, 并将生成的 JAR 包通过 spark-submit 提交到 Spark 中运行命令。

 

当然,让我们逐步完成每个任务:
(1) 在 spark-shell 中读取 Linux 系统本地文件"/home/hadoop/test.txt",然后统计出文件的行数:
// 启动 spark-shell
$ spark-shell

// 读取本地文件并计算行数
val localFileRDD = sc.textFile("file:///home/hadoop/test.txt")
val lineCount = localFileRDD.count()
println(s"本地文件的行数: $lineCount")

(2) 在 spark-shell 中读取 HDFS 系统文件"/user/hadoop/test.txt",然后,统计出文件的行数:
// 读取 HDFS 文件并计算行数
val hdfsFileRDD = sc.textFile("hdfs:///user/hadoop/test.txt")
val lineCountHDFS = hdfsFileRDD.count()
println(s"HDFS 文件的行数: $lineCountHDFS")

(3) 编写独立应用程序,读取 HDFS 系统文件"/user/hadoop/test.txt",然后,统计出文件的行数;通过 sbt 工具将整个应用程序编译打包成 JAR 包,并将生成的 JAR 包通过 spark-submit 提交到 Spark 中运行命令。
首先,创建一个Scala应用程序,比如SparkFileReader.scala:
import org.apache.spark.{SparkConf, SparkContext}

object SparkFileReader {
def main(args: Array[String]): Unit = {
// 设置 Spark 配置
val conf = new SparkConf().setAppName("SparkFileReader")
val sc = new SparkContext(conf)

// 读取 HDFS 文件并计算行数
val hdfsFileRDD = sc.textFile("hdfs:///user/hadoop/test.txt")
val lineCountHDFS = hdfsFileRDD.count()

println(s"HDFS 文件的行数: $lineCountHDFS")

// 停止 Spark 上下文
sc.stop()
}
}

然后,使用 sbt 构建项目并创建一个 JAR 文件:
$ sbt package

这将在 target/scala-/ 目录下创建一个 JAR 文件。
最后,使用 spark-submit 提交 JAR 文件到 Spark:
$ spark-submit --class SparkFileReader --master <spark-master-url> target/scala-<version>/sparkfilereader_2.11-<version>.jar

将 <spark-master-url> 替换为 Spark 主节点的 URL。这将在 Spark 集群上执行你的 Spark 应用程序。
注意:确保 Spark 和 Hadoop 已正确配置,并在运行 Spark 应用程序之前在 HDFS 中准备好必要的文件。根据你的环境调整代码和配置。

标签:文件,读取,HDFS,文件系统,行数,spark,Spark
From: https://www.cnblogs.com/DREAM2021/p/17968887

相关文章

  • 第七天:磁盘存储、分区和文件系统
    一、磁盘结构1、设备放在/dev文件下面硬盘:sdanvme虚拟:xvdvdmknod:创建设备2、硬盘类型接口类型:IDESCSISATASASUSBM.2机械硬盘和固态硬盘3、open(),read(),write(),close()文件操作二、分区类型设备分区、创建文件系统、挂载新的文件系......
  • 文件系统
    1.cd跳转2.bin存储可以直接执行的常用命令3,sbin是系统级的二进制命令4.lib库目录5.usr包含了应用程序和用户相关文件6.boot包含了原目录7,dev设备目录8,包含配置文件9,opt可选目录,其他软件包10,media可移动媒体设备挂载点11,proc进程目录,虚拟目录12,sys系统目录1......
  • 使用zipFile读取文件时遇到的问题及解决(KeyError: "There is no item named 'xxx' in
    问题描述在Windows上跑一段代码时,遇到如下问题:KeyError:"Thereisnoitemnamed'CDR_Data\\\\CDR.Corpus.v010516\\\\CDR_DevelopmentSet.PubTator.txt'inthearchive"原因分析这是一段Python代码,代码中使用到了zipfile库,它首先创建了一个ZipFile对象,然后在调用read()......
  • Elastic实战:彻底解决spring-data-elasticsearch日期、时间类型数据读取报错问题
    0.引言在使用spring-data-elasticsearch读取es中时间类型的数据时出现了日期转换报错,不少初学者会在这里困惑很久,所以今天我们专门来解读该问题的几种解决方案。1.问题分析该问题的报错形式一般是:Failedtoconvertfromtype[java.lang.String]totype[java.util.Date]f......
  • 【服务器数据恢复】服务器迁移数据时lun数据丢失,无法读取的数据恢复案例
    服务器数据恢复环境&服务器故障:一台安装Windows操作系统的服务器。工作人员在迁移该服务器中数据时突然无法读取数据,服务器管理界面出现报错。经过检查发现服务器中一个lun的数据丢失。服务器数据恢复过程:1、将故障服务器中所有磁盘编号后取出,硬件工程师对所有磁盘进行检测后没......
  • 解决 Idea HttpClient 无法读取 http-client.env.json 配置的问题
    前言byd就我遇到了这种情况是吧,百度搜的全是nm复制粘贴的垃圾文章步骤创建一个.http文件,使用idea工具栏创建一个env.json,内容无所谓按理说现在应该就能正常使用了,但是如果到这一步还没法读取到这个环境的话,继续向下看右键env.json看看有没有这个,如果没......
  • SparkStreaming 连接 Kafka数据源
    本文的前提条件:SparkStreaminginJava参考地址:SparkStreaming+KafkaIntegrationGuide(Kafkabrokerversion0.10.0orhigher)1.添加POM依赖<dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>......
  • SparkStreaming 自定义数据采集器
    本文的前提条件:SparkStreaminginJava参考地址:SparkStreamingCustomReceivers1.自定义数据采集器packagecn.coreqi.receiver;importorg.apache.spark.storage.StorageLevel;importorg.apache.spark.streaming.receiver.Receiver;importjava.util.Random;/**......
  • SparkStreaming in Java
    参考地址:SparkStreamingProgrammingGuide1.新建Maven项目,POM引入依赖<dependency><groupId>org.apache.spark</groupId><artifactId>spark-streaming_2.13</artifactId><version>3.5.0</ve......
  • IIC:DDM_SFP光模块参数读取
    光模块数字诊断监控数据读取逻辑报告I2C从设备地址0xA2访问的256字节的数据包括一些常量,也包含一些只读的变量,甚至还有一些可写的变量。数字诊断内存映射专用数据字段描述如下: 图1期间地址分布说明 图2检测信号地址 Finisar公司的DDM数据位于器件地址A2H,具体信号数据......