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

时间:2017-05-10 22:04:19

标签: java hadoop sqoop

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

是否可以使用地图栏功能?

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.

我们希望架构完全相同,但是某些列只会占据很大的空间,所以我们不希望它们被拉入我们的集群。 另一个想法是生成自定义选择语句,其中膨胀列为空,但这是sqoop的更多配置,我们有一千个表来映射。

--map-column-java bloatedcolname=null

思想?

2 个答案:

答案 0 :(得分:1)

您可以使用此{/ 1}}

例如:

    String str1="Mother In Law";
    String str2="Hitler Woman";
    char[] anag1=str1.replaceAll("\\s", "").toLowerCase().toCharArray();
    char[] anag2=str2.replaceAll("\\s", "").toLowerCase().toCharArray();
    Arrays.sort(anag1);
    Arrays.sort(anag2);
    System.out.println(Arrays.equals(anag1, anag2)? "words are anagrams":"words are not anagrams");

--query用于替换split的最小值和最大值。

答案 1 :(得分:0)

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

排除您不想导入的列。

示例:

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

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