hadoop 代码中获取文件名
项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步
在hadoop的MR相关代码中,经常需要获得mapper输入的文件名,从而针对不同的文件进行不同的操作。下面简单地介绍一下如果在MR代码中获取文件名
1.在streaming中获取文件名
实际中经常用python开发streaming程序,在python代码中可以用如下方式获得文件名:
import osfilepath = os.environ["mapreduce_map_input_file"]
通过上面的代码即可达到获取文件名的目的,通过代码也很容易看出,文件名保存在名为mapreduce_map_input_file的环境变量中。
需要稍微注意的地方有两点:
1.filepath保存的是文件在hdfs上的完整路径。
2.新版本的api为mapreduce_map_input_file,老版本的api为map_input_file,在集群上尝试了老版本的api,代码会报错。
2.在java代码中获取文件名
在java代码中获取文件名,需要得到input split 所在的文件名,需要从map函数中的context参数着手。
// 获取 input split 所在的文件名
private String getFileName(MapContext context) {return ((FileSplit) context.getInputSplit()).getPath().getName();
}
如果需要获得在hdfs上的绝对路径,可以用以下代码实现:
String filepath = ((FileSplit)context.getInputSplit()).getPath().toString();
获取文件名的大致流程为:Context(map函数里) → InputSplit → FileSplit → Path → String(file name)。
hadoop 代码中获取文件名相关推荐
- php获取当前文件名和路径,PHP 中获取文件名及路径
PHP 中获取文件名及路径 为了脚本程序的兼容性,很多时候脚本的名称都不是固定的.所以我们需要通过动态获取当前脚本的路径.文件名来完成某些功能. PHP 中,我们可以使用常量 __FILE__ 来获取 ...
- 在代码中获取ApplicationContext实例
基于Spring的Java应用会通过ApplicationContext接口提供应用程序配置.我们常常需要在代码中获取当前的ApplicationContext.如在集成测试时,需要通过Applica ...
- 如何从代码中获取当前方法的名称[复制]
本文翻译自:How to get the name of the current method from code [duplicate] This question already has an a ...
- 获取存储过程返回值及代码中获取返回值
获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...
- 获取存储过程返回值及代码中获取返回值(转)
获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...
- vba不能提取服务器上文件名,从全路径文件名中获取文件名(不含路径)
从全路径文件名中获取文件名(不含路径) 方法一: Public Function gf_GetFileName(strFullPath As String) As String Dim splitLi ...
- 安卓代码中获取dp值为控件设置宽高,获取dimen值
引言: 今天遇到一个问题,在自定义控件的时候,要求在代码中设置控件的宽高.本来自以为:对嘛,很简单,就是直接设置params //这样直接初始化的时候设置LayoutParams iconparams ...
- 如何在代码中获取Java应用当前的版本号?
最近需要在项目中获取项目的版本号,最笨的方法莫过于硬编码一个版本号,当然我也是这么干的.不过闲下来的时候突发奇想Spring Boot项目中pom.xml定义的版本号能不能通过API获得呢?于是利用摸 ...
- 【Android NDK 开发】在 C 代码中获取 Android 系统信息 ( NDK 项目创建 | NDK 配置 | 获取 Android 系统版本号 )
文章目录 I . 创建 NDK 项目 II . NDK 项目 相关配置 III . NDK 中获取 Android 版本号 IV . 使用 __system_property_get 可获取的参数 I ...
- 在C#代码中获取Silverlight的初始化initparams参数
今天学习内容是,我们将利用Silverlight给我们提供的一个便利的方法来实现: 当一个web page加裁时,把指定参数(或信息)从 web page传递到silverlight中,这就是init ...
最新文章
- python 之路200行Python代码写了个打飞机游戏
- security面试_精选41 道 Spring Boot 面试题,附答案!
- 外媒列10大理由建议消费者不购买iPad
- python上传文件到windows_python自动化-WinSpy+pywin32文件上传操作
- [慕课笔记] node+mongodb建站攻略
- matlab使用常犯的错误
- 信息学奥赛一本通 1308:【例1.5】高精除
- bgll算法 matlab,一种复杂网络社区检测的方法与流程
- 【已解决】bootstrap table 参数后台获取不到
- Python数据挖掘之时序模型预测
- python qqbot实现qq聊天机器人_Python QQBot库的QQ聊天机器人
- linux audio device driver音频设备驱动
- 【Linux kernel/cpufreq】framework ----cpufreq governor
- 7z解压crc错误_百度网盘压缩下载文件的CRC校验错误的解决方法
- 如何规划与实施数字化工厂?
- 一个非常简单的方法使用JavaScript打包一个网页成为安卓app(打包远景论坛)
- 室内空气流动原理图_新风系统工作原理图—新风系统工作原理介绍
- web连接蓝牙电子秤navigator.bluetooth
- 达梦数据库亮相第七届中国国际国防电子展览会
- Win10系统里的软件有小盾牌有啥影响吗
热门文章
- 【二 HTTP编程】2. HTTP路由
- 前端学习总结【103天】:CSS——不用JavaScript实现tab标签切换的两种方法
- 如何在Windows上安装多个MySQL
- C语言printf语法
- 认识linux,走进开源世界。
- WPF中的Application类。
- 【跃迁之路】【507天】程序员高效学习方法论探索系列(实验阶段264-2018.06.27)...
- 20172328《程序设计与数据结构》第三周学习总结
- 3.python(第三天日记)
- 机器人防火墙出击 提升在线业务的安全未来