我在一个表中有20000条记录。我希望将它们复制到两个单独的文件(记录均匀分布)到HDFS中(使用Sqoop)。如果表没有主键或唯一键,我们如何实现这一点?
发布于 2016-09-06 17:09:52
确保您使用-m 2进行--split-by col1,否则您将看到一个错误。
发布于 2016-09-06 11:43:36
具有主键或唯一键的不是并行导入的限制。
不建议对非均匀分布的列进行拆分,因为这会导致任务不平衡。
现在,您的记录是均匀分布的。因此,这不会有任何性能问题。
让我用一个例子来解释它是如何工作的,
您有一个包含列col1的表,这些列的值从1到100(其中也有一些重复的值)。
现在,sqoop将确定最小值和最大值,并将其拆分为两部分
映射器将使用如下查询通过JDBC获取数据-
SELECT * FROM sometable WHERE id >= 1 AND id < 50SELECT * FROM sometable WHERE id >= 51 AND id < 100因此,使用两个映射器(-m 2)继续您的sqoop import查询。
https://stackoverflow.com/questions/39340031
复制相似问题