我在表格中有20000条记录。我想将它们复制到两个单独的文件(记录均匀分布)到HDFS(使用Sqoop)。 如果表没有主键或唯一键,我们如何实现这一目标?
答案 0 :(得分:0)
确保你使用-m 2给--split-by col1,否则你会看到错误。
答案 1 :(得分:-1)
拥有主键或唯一键不是并行导入的限制。
不建议在非均匀分布的列上拆分,因为这会导致任务不平衡。
现在您的记录均匀分布。因此,这不会有任何性能问题。
让我解释它正在使用一个例子,
您有一个列col1
的表,其值为1 -100(某些重复值也在那里)。
现在,sqoop将确定最小值和最大值并将其分成两部分
Mappers将使用像
这样的查询通过JDBC获取数据 SELECT * FROM sometable WHERE id >= 1 AND id < 50
SELECT * FROM sometable WHERE id >= 51 AND id < 100
因此,请使用两个映射器(-m 2
)继续执行sqoop导入查询。