2015-08-25 6 views
3

importation Sqoop résulte en double/enregistrements partiels lorsque nous utilisons le paramètre suivantpartiels et les enregistrements alors que l'importation Sqoop

  • --query - Requête de
  • --split-by - Colonne non entier (char)
  • --num-mappers - Plus de 2

vérifié le nombre de données source SAY 1000 reco rds

vérifié le nombre de données d'importation dire 1923 enregistrements

Répondre

3

Lorsque vous utilisez le split-by et le champ est non entier.

Sqoop utilise TextSplitter qui fournit un avertissement comme suit:

WARN db.TextSplitter: If your database sorts in a case-insensitive order, this may result in a partial import or duplicate records 

WARN db.TextSplitter: You are strongly encouraged to choose an integral split column. 
  • solution 1: utiliser unique mapper ou 2
  • solution 2: utiliser la fonction de classement dans la requête et en utilisant ce --split-by sur le rang champ
  • solution 3: trier le champ --split-by dans l'ordre croissant dans la requête