2017-10-11 2 views
0

Tabelle hat nur String-Spalte als primäre Spalte EMPLOYEE_ID, wie es zu partitionieren.Können wir die String-Spalte als partitionColumn festlegen?

val destination = spark.read.options(options).jdbc(options("url"), options("dbtable"), "EMPLOYEE_ID", P00100001, P00100005000000, 10, new java.util.Properties()).rdd.map(_.mkString(","))

Gibt es eine andere Art und Weise JDBC-Tabelle zu lesen und zu verarbeiten.

Antwort

1

Es ist nicht möglich. Hier können nur ganzzahlige Spalten verwendet werden. Wenn Ihre Datenbank eine Variante von Rowid unterstützt, die integer ist oder können auf ganzzahlige gegossen werden, können Sie es in einer Abfrage (Pseudo-Code) extrahieren:

(SELECT CAST(rowid AS INTEGER), * FROM TABLE) AS tmp 
+0

'set @row_num = 0; SELECT @row_num: = @row_num + 1 als Zeilennummer, s. * FROM Quelle s; 'Diese Abfrage gibt die Zeilennummer zusammen mit den Tabellendaten, aber wie diese Anweisung ausgeführt wird set @row_num = 0; und SELECT max (@row_num) als row_number; 'um @rom_num = 0 zu setzen und den Wert für den oberen Wert von spark zu erhalten. – Vignesh

Verwandte Themen