2016-04-13 7 views
0

Ich importiere Daten von Teradata zu Hive mit Sqoop.Problem mit char, varchar, dezimal im Sqoop-Befehl mit --map-column-hive-Tag

Ich habe --map-column-hive in Sqoop Importbefehl

--map-column-hive col1=int,col2=float,col3=decimal,col4=timestamp,col5=varchar

Ich habe Ausnahme:

FAILED: ParseException Linie 1: 234 nicht übereinstimmen Eingang '' erwartet (in der Nähe von 'varchar' in primitiven Typspezifikation

Dann habe ich versucht:

--map-column-hive col1=int,col2=float,col3=decimal,col4=timestamp,col5=varchar(255)

Ich habe:

bash: Syntaxfehler in der Nähe von unerwartetem Token `(‘

Wie char, varchar und decimal in zu handhaben?

Antwort

1

Nach Überprüfung des Quellcodes und Tracking-Problem im Zusammenhang damit. Ich fand:

Für --map-column-hive Tag

  1. Ohne Präzision und Maßstab

    Schlüssel = Wert

    z.B. col1=int

  2. mit Präzision

    key = "Wert (precision)" (in Hochkommata sein kann)

    z.B. col2="varchar(255)"

  3. mit Skala

    Es ist ein Fehler für diese, fest in Sqoop 1.4.7

    Fix nicht einfach ist. Zum Beispiel für eine Spalte col3=decimal(1,1) ein Bedarf col3=decimal(1%2C1)

    Scheck schreiben SQOOP-2103 issue für mehr Details