Cloudera sqoop 在导入时将某些列映射到空值

Cloudera sqoop mapping certain columns to null values on import

在导入时将某些列转换为空占位符的最佳方法是什么?

是否可以使用映射列功能?

Argument    Description
--map-column-java <mapping> Override mapping from SQL to Java type for configured columns.
--map-column-hive <mapping> Override mapping from SQL to Hive type for configured columns.

我们希望模式相同,但有些列只是膨胀太多,所以我们不希望它们被拉入我们的集群。 另一个想法是生成自定义 select 语句,其中膨胀的列为空,但这是 sqoop 的更多配置,我们有上千个表要映射。

--map-column-java bloatedcolname=null

想法?

只需在您的配置单元导入查询中使用 --columns <col1, col2, col3…>

排除不想导入的列。


示例:

我在 RDBMS 中有四列 - id、name、occupation、address,我只想导入 id 和 name。

在导入命令中使用 --columns id, name

你可以使用--query来实现

例如:

sqoop import --query 'select a, b, null as c, null as d from tbl where $CONDITIONS'

$CONDITIONS 用于替换分割的最小值和最大值。