通过hadoop streaming 输入两个文件或目录
2017-08-11 14:52
127 查看
通过Hadoop streaming写Mapreduce程序时,会遇到同时处理多个输入文件或者目录的的需求,那么如何在map程序中知道这一条内容到底来自哪个文件?
其实hadoop已经给留了解决方法:在map端获取环境变量mapreduce_map_input_file,即为本次的输入文件。
sh脚本中:
py文件中判断目录:
注意:hdfs://hadoop是集群的名字,if判断路径的时候需要写上。
py文件中判断文件名:
其实hadoop已经给留了解决方法:在map端获取环境变量mapreduce_map_input_file,即为本次的输入文件。
sh脚本中:
-input ${hdfs_input_path} \ -input ${hdfs_input_path_user} \
py文件中判断目录:
def mapper(): filepath = os.environ.get('mapreduce_map_input_file') filename = os.path.split(filepath)[0] for line in sys.stdin: if filename == 'hdfs://hadoop/user/hdfs/merge_test': pass if filename == 'hdfs://hadoop/user/hdfs/file_test': pass
注意:hdfs://hadoop是集群的名字,if判断路径的时候需要写上。
py文件中判断文件名:
def mapper(): filepath = os.environ.get('mapreduce_map_input_file') filename = os.path.split(filepath)[-1] for line in sys.stdin: if filename == 'file_name1': pass if filename == 'file_name2': pass
相关文章推荐
- Hadoop streaming 编写MapReduce程序-二次排序,多文件输入
- 在两个Android设备间通过UDP传输目录内文件
- 在两个Android设备间通过UDP传输目录内文件
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- hadoop处理不同输入目录文件
- 1.编写一个简单的C语言程序:根据输入的两个整数求平均值并且在终端输出,通过gcc编译器得到它的汇编程序文件。 2.编写一个C语言程序:打印输出所有“水仙花数”,用gdb调试程序(给出步骤)。所谓“
- hadoop streaming两个数据文件实现join合并操作
- hadoop 词频统计&&adoop jar jar包名.jar 包名.主类名 输入路径(文件的目录,不包括文件本身) 输出路径
- [Python练习]对比两个目录里面的文件差异,并给出差异列表
- 通过递归查询指定目录下的所有文件和子文件夹下的指定文件名
- 在两个目录中寻找差异文件
- Windows API函数删除指定文件目录下所有内容vc6.0通过
- 【python】实例-创建文件并通过键盘输入字符
- Hadoop-2.2.0使用lzo压缩文件作为输入文件
- hadoop多文件格式输入
- Java I/O通过输入输出流进行文件读写(二)用户界面
- vue新框架nux通过文件目录自动生成路由
- Unity(六) 使用XML/JSON/Binary数据文件封装场景以及StreamingAssets目录的安卓平台同步
- 通过Java代码打开浏览器,本地文件目录以及ftp站点
- 通过SSHFS在RHEL中安全的挂载远程Linux/UNIX目录或文件系统