一、HADOOP处理多个输入文件
参数"input"设置,多个输入文件,数据格式保持一致
-input path/file1
-input path/file2
或者
-input path1,path2
二、调用文件生成数据集合的处理
1.第一种方式,地区本地文件
参数"-file", 其他数据中的预处理后与输入流join是,通过"-file"把文件传入,然后对该文件做处理。但"-file"传的是本地文件
-file text.txt
2.第二种方式,集群文件处理
# 主调函数的hadoop参数设置
hadoop_cmd='
-input path1/file1 \ #file1为处理的输入流数据
-input path2/file2 ' #file2为前期预处理数据
# mapper文件逻辑判断
if 'file1' in os.getenv('map_input_file'):
# 文件1处理逻辑
if 'file2' in os.getenv('map_input_file'):
# 文件1处理逻辑,其他数据处理
三、HADOOP通过文件路径获得数据日期
import os
import re
# 获取输入路径
map_input_file = os.getenv('map_input_file')
# 解析路径获取日期。一般集群存储文件以日期命名,不存储日期列名,因为会增加存储空间,造成存储空间浪费
log_date = re.search('(20[0-9]{6})/', map_input_file).group(1)
参考:hadoop多路输入