2012-04-11 10 views
5

HDFS'de sekmeyle ayrılmış bir metin dosyam var ve bunu bir MySQL tablosuna vermek istiyorum.Sqoop dışa aktarma kimlikleri nasıl kullanılır?

Metin dosyasındaki satırların sayısal kimlikleri olmadığından, SQL INSERT (otomatikleştirme) sırasında otomatik olarak ayarlanmış bir kimliğe sahip bir tabloya nasıl dışa aktarılır?

I (id tabloda son tanımlanan nitelik olmak üzere) dışa aktarmaya çalışırsanız ben id-niteliğini dışlamak için otomatik olarak oluşturulan bir sınıf alıp değiştirirseniz, ben

java.util.NoSuchElementException 
    at java.util.AbstractList$Itr.next(AbstractList.java:350) 
    at entity.__loadFromFields(entity.java:996) 

olsun, ben

olsun Burada parametre 27'nin 'id' olduğu

.

Versiyon Sqoop 1.3.0-cdh3u3 olan

cevap

3

I n Sqoop 1.4.1, "null" yazımı, benim için çalışılan otoantrement alanına karşılık gelen metin dosyası alanında. MySQL'e aktarıldıktan sonra, artan ve otomatik olarak atanan bir kimlik göreceksiniz.

+0

Bunu test edemiyorum ama Çalışıyor, bu daha zarif bir çözüm: – thomers

+0

FYI: Kelimenin tam anlamıyla, sorgudaki null'lar ... Rails tablosunun bir Rails MySQL tablosuna aktarılmaya çalışıyorum. Rails tablosu otomatik artışlı bir ID alanına sahip olduğundan, eklemeye çalıştım. : ... "null" id olarak, ... Kovan sorgusunda ilk alan olarak .. Harika çalıştı! TY Jorge! –

0

Sqoop e-posta listesine birileri önerildiği gibi:

  • Bu tabloda
  • Kopya içine kimliği olmadan
  • Sqoop ihracatı geçici tablo oluşturun Bu tablonun satırlarını son tabloya (otomatizasyon kimliğine sahip olan) (
0

Kaynak masam HIVE konumunda. Benim için işe yarayan, int adı verilen bir sütun eklediğim ve sütunu NULL olarak doldurduğumdur. Sqoop sonra, mysql (id, X, Y) değerlerini (null, "x_value," y_value ") alacaktır. Sonra mysql otomatik artış olarak kimliği doldurmayı bilir