`
字母哥
  • 浏览: 70141 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

spark实现hadoop中获取文件名的功能

阅读更多
hadoop1版本中提供了获取文件名的功能,就是在map阶段可以获取每一行记录属于哪个文件,可以得到这个文件名,代码如下:
//获取文件名
InputSplit inputSplit=(InputSplit)context.getInputSplit();
String filename=((FileSplit)inputSplit).getPath().getName();

这是hadoop1版本提供的方法。

对于spark也可以实现这个功能,使用的方式是本地测试的代码,spark在本地执行的,代码如下:
object Mytest3 {
  def main(args: Array[String]): Unit = {
    val conf=new SparkConf
    conf.setMaster("local[2]").setAppName("mytest")
    System.setProperty("hadoop.home.dir","E:\\hadoop2\\hadoop-2.6.0")
    val sc=new SparkContext(conf)
        
    val fileRDD=sc.hadoopFile[LongWritable, Text, TextInputFormat]("C:\\sparksplit\\*")
    
    val hadoopRdd = fileRDD.asInstanceOf[HadoopRDD[LongWritable, Text]]
    
    val fileAndLine = hadoopRdd.mapPartitionsWithInputSplit((inputSplit:InputSplit,iterator:Iterator[(LongWritable, Text)]) =>{
      val file = inputSplit.asInstanceOf[FileSplit]
      iterator.map(x=>{file.getPath.toString()+"\t"+x._2})
    } 
    )
    
    fileAndLine.foreach(println)
  }
}

这里要注意的是,引入的jar包不要错,错误的话,方法就会报错。引入的jar包是下面的:
import cn.wjpt.AuditLogManager
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
import org.apache.hadoop.mapred.lib.MultipleTextOutputFormat
import org.apache.hadoop.io.Text
import org.apache.hadoop.io.LongWritable
import org.apache.spark.rdd.HadoopRDD
import org.apache.hadoop.mapred.InputSplit
import org.apache.hadoop.mapred.FileSplit
import org.apache.hadoop.mapred.TextInputFormat


这样就搞定了。
1
2
分享到:
评论

相关推荐

    spark-assembly-1.5.2-hadoop2.6.0.jar

    文件名中的'hadoop2.6.0'表明此版本的Spark是与Hadoop 2.6.0版本兼容的。这意味着它可以无缝地运行在Hadoop YARN或HDFS之上,充分利用Hadoop的分布式存储和计算能力。 4. 使用场景: - 开发者在编写Spark程序时,...

    spark-3.4.1-bin-hadoop3.tgz - Spark 3.4.1 安装包(内置了Hadoop 3)

    文件名: spark-3.4.1-bin-hadoop3.tgz 这是 Apache Spark 3.4.1 版本的二进制文件,专为与 Hadoop 3 配合使用而设计。Spark 是一种快速、通用的集群计算系统,用于大规模数据处理。这个文件包含了所有必要的组件,...

    大数据+Spark+Hadoop+winutils

    Spark在这样的环境中可以作为Hadoop的数据处理引擎,通过YARN(Hadoop的资源管理系统)或者其他集群管理器调度任务,实现高效的数据处理和分析。Spark提供了丰富的API,支持Java、Scala、Python和R语言,便于开发者...

    Spark2.0.2 安装包

    Spark 2.0.2 是一个重要的大数据处理框架,它由 Apache Software ...在实际工作中,根据具体需求选择合适的工作模式,如本地开发、单机多核、多节点集群等,灵活运用 Spark 的功能,实现高效的数据处理和分析。

    eclispe第三方插件spark

    在压缩包子文件的文件名"spark-assembly_2.9.3-0.8.1-incubating-hadoop2.2.0"中,我们可以解读出以下信息: - "spark-assembly":这是Spark的聚合JAR文件,包含了所有依赖项,用于运行Spark应用。 - "2.9.3":这...

    2022毕业设计,基于 Hadoop 的游戏数据分析系统源码.zip

    此外,Hadoop生态系统还包括其他工具,如Hive用于数据仓库,Pig用于数据处理,HBase用于实时查询,以及Spark用于更快速的数据处理和分析,这些可能都在这个系统中有所应用。 【压缩包子文件的文件名称列表】:...

    hadoop实验+作业.zip

    根据提供的文件名"分析-201806021513-刘一之--实验.docx"和"分析-201806021513-刘一之--作业.docx",我们可以推测这些文档可能包含了刘一之同学在2018年6月2日进行的Hadoop实验的详细步骤、数据分析结果以及作业解答...

    大数据 hadoop mapreduce 词频统计

    MapReduce是一种分布式计算模型,由Google提出,Hadoop对其进行了实现。在MapReduce中,数据处理分为两个主要阶段:Map阶段和Reduce阶段。Map阶段将原始数据分解成小块,然后对每个小块进行并行处理;Reduce阶段则...

    spark安装配置教程.docx

    2. **测试操作**:在Spark REPL环境中执行一些简单的Spark操作,如读取文件、进行转换和行动操作等,以进一步验证Spark的功能。 请注意,以上步骤是基于Linux环境的通用安装配置流程。根据具体的环境和需求,可能...

    Spark 2.1 安装注意事项1

    首先,从描述中可以看出,Spark 2.1.0的下载链接是通过`wget`命令在终端中获取的。`wget`是一个在Linux和Unix-like操作系统中广泛使用的工具,用于从Web服务器下载文件。在输入`wget`后,你需要粘贴Spark的下载URL,...

    hadoop-2.7.7.zip(windows 用)

    Hadoop的生态系统还包括其他组件,如Hive(数据仓库工具)、Pig(数据分析平台)、Spark(快速大数据处理框架)等,它们共同构建了一个强大的大数据处理平台。 总之,这个“hadoop-2.7.7.zip”压缩包为Windows用户...

    Hadoop实战源代码(HadoopinAction_source_code)

    《Hadoop实战源代码》(HadoopinAction_source_code)是针对大数据处理框架Hadoop的一份珍贵资源,其中包含了从知名书籍《Hadoop in Action》官网获取的实际代码示例。这些示例涵盖了Hadoop的核心组件及其应用,为...

    Hadoop Share

    压缩包内的文件名 "Hive_learn.key" 提示我们重点会聚焦在Hive上,Hive是基于Hadoop的数据仓库工具,能够将结构化的数据文件映射为一张数据库表,并提供SQL查询功能。它适合大规模数据集的离线批处理分析。 现在,...

    Hadoop海量数据处理

    4. **Hadoop生态组件**: Hadoop生态系统包括众多项目如HBase(分布式NoSQL数据库)、Hive(数据仓库工具)、Pig(高级数据流语言)、Spark(快速通用的大数据处理引擎)等,它们共同扩展了Hadoop的功能。 **Hadoop...

    apache hadoop v2.7.0官方最新版

    YARN允许在Hadoop集群中运行多种计算框架,如Spark、Tez等,进一步增强了Hadoop的灵活性。 文件名`hadoop-2.7.0-src.tar.gz.asc`是一个GPG签名文件,用于验证下载的源代码包的完整性和真实性,确保未被篡改。`...

    8天Hadoop大数据

    7. 高级主题:可能涉及Hadoop与其他组件如HBase、Hive、Pig的集成,以及Spark等新一代大数据处理工具的对比。 总之,"8天Hadoop大数据"教程为初学者提供了一条快速学习Hadoop的途径,通过理论与实践相结合的方式,...

    SPARK2.3.2

    在这个Spark 2.3.2的安装包中,主要文件名"spark-2.3.2-bin-hadoop2.7"揭示了几个关键信息: 1. **Spark版本**:2.3.2表示这是Spark的第2个主要版本、第3次次要更新和第2次补丁发布。在版本管理中,这通常意味着它...

    3.Hadoop学习笔记.pdf

    YARN引入了资源管理器、节点管理器以及应用程序历史服务器等概念,使得在Hadoop上运行的计算框架不仅仅是MapReduce,也可以是其他框架,如Spark。 Hadoop的生态系统还包括Hive、HBase、Pig、Zookeeper等多种工具和...

    hadoop-windows本地库版

    同时,熟悉Hadoop生态系统中的其他工具,如Hive(数据仓库工具)、Pig(数据分析工具)、Spark(快速数据处理引擎)等,可以进一步提升大数据处理能力。 总之,"hadoop-windows本地库版"为Windows用户提供了一种...

    hadoop2.6_Win_x64-master

    标签"hadoop-2.6"进一步确认了这个压缩包与Hadoop 2.6版本有关,这是Hadoop发展过程中的一个重要版本,引入了许多性能优化和功能增强,比如YARN资源管理器的改进,使得Hadoop更加适合大规模的数据处理需求。...

Global site tag (gtag.js) - Google Analytics