如何使用MapReduce连接两个表



我有两个像这样的员工和工资表

CREATE TABLE `employees` (  
  `emp_no` int(11) NOT NULL,
  `birth_date` date NOT NULL,
  `first_name` varchar(14) NOT NULL,
  `last_name` varchar(16) NOT NULL,
  `gender` enum('M','F') NOT NULL,
  `hire_date` date NOT NULL,
  PRIMARY KEY (`emp_no`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `salaries` (
`emp_no` int(11) NOT NULL,
`salary` int(11) NOT NULL,
`from_date` date NOT NULL,
`to_date` date NOT NULL,
PRIMARY KEY (`emp_no`,`from_date`),
KEY `emp_no` (`emp_no`),
CONSTRAINT `salaries_ibfk_1` FOREIGN KEY (`emp_no`) REFERENCES `employees` (`emp_no`)
    ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

如何使用map reduce程序连接这两个表,您能提供解决方案吗?

您可以按照以下步骤来做:

  1. 在csv文件中从两个表中提取数据
  2. 读取mapper中的两个文件,并将key作为主键(emp_no)。
  3. 将reducer的putput以csv格式写入文件
  4. 使用mysql bulk Import命令导入文件

如果表中有动态生成的数据,那么在步骤1中只从每个表中提取生成的数据

相关内容

  • 没有找到相关文章

最新更新