Hadoop Map reduce合并两个没有相同密钥的文件

Hadoop Map reduce合并两个没有相同密钥的文件,hadoop,mapreduce,apache-pig,Hadoop,Mapreduce,Apache Pig,我有两个HDFS文件。第一个文件包含一条记录,其中包含员工一天的开始时间和结束时间。他在早上5点进入系统,下午2点离开,系统记录开始时间、结束时间和持续时间 第二个文件包含代表客户给我们办公室打电话的确切时间的记录 我如何在HDFS中加入pig、m/r等这两个文件,给我一个代表每个客户的结果集,以及他们打电话时可用的所有员工?当你说时间时,我们谈论的精度是多少,分、秒??一件事可以是读取员工文件,并假设我们讨论的是分钟级精度,保持每分钟输出(时间,empID),直到文件1中的每个条目结束。对于文

我有两个HDFS文件。第一个文件包含一条记录,其中包含员工一天的开始时间和结束时间。他在早上5点进入系统,下午2点离开,系统记录开始时间、结束时间和持续时间

第二个文件包含代表客户给我们办公室打电话的确切时间的记录


我如何在HDFS中加入pig、m/r等这两个文件,给我一个代表每个客户的结果集,以及他们打电话时可用的所有员工?

当你说时间时,我们谈论的精度是多少,分、秒??一件事可以是读取员工文件,并假设我们讨论的是分钟级精度,保持每分钟输出(时间,empID),直到文件1中的每个条目结束。对于文件2,只需发出(时间、客户Id)。现在,reducer将完成所需的工作,但由于
交叉
,对于大型数据集来说,它可能会非常昂贵

EmpInOut = LOAD 'empdata' using PigStorage(',') as (empID:int, logInTime:int, logOutTime:int);
CustCalls = LOAD 'custcalls' using PigStorage(',') as (custID:int, callTime:int);
BigMess = CROSS CustCalls, EmpInOut;
EmpsAvail = FILTER BigMess BY logInTime <= callTime AND logOutTime >= callTime;
Answer = GROUP EmpsAvail BY (custID, callTime);
DUMP Answer;
文件“custcalls”:

101,0500
102,0630
103,0730
104,0830
105,0930
106,1210
107,1930
101,0500
102,0630
103,0730
104,0830
105,0930
106,1210
107,1930