如果在给定的select查询中执行了连接/聚合,sqoop是否运行reducer --query
参数?或者在sqoop中是否存在Map器和还原器同时运行的情况?
文档指定每个map任务将需要执行查询的一个副本,结果按sqoop推断的边界条件进行分区。
$ sqoop import \
--query 'SELECT a.*, b.* FROM a JOIN b on (a.id == b.id) WHERE $CONDITIONS' \
--split-by a.id --target-dir /user/foo/joinresults
在上面的例子中 JOIN
在首先使用 $CONDITIONS
?
2条答案
按热度按时间qni6mghb1#
在你的命令里
sqoop
不使用减速机。然而,在某些情况下sqoop
使用reducer
. 检查下面的例子取自这里的文档。lg40wkob2#
join/计算将在rdbms上执行,其结果将被mapper用来传输到hdfs。不涉及减速机
与
--query
参数,则需要指定--split-by
参数的列,该列应用于将数据切片为多个并行Map任务。此参数通常自动默认为主表的主键$conditions将自动用生成的条件替换此占位符,指定要传输的数据片