簡體   English   中英

使用AUTO_INCREMENT列將DataFrame插入到SQL表中

[英]Insert DataFrame into SQL table with AUTO_INCREMENT column

我有一個MySQL表,其中包含一個AUTO_INCREMENT列:

CREATE TABLE features (
  id INT NOT NULL AUTO_INCREMENT,
  name CHAR(30),
  value DOUBLE PRECISION
);

我創建了一個DataFrame並希望將其插入此表中。

case class Feature(name: String, value: Double)
val rdd: RDD[Feature]
val df = rdd.toDF()
df.write.mode(SaveMode.Append).jdbc("jdbc:mysql://...", "features", new Properties)

我收到錯誤, Column count doesn't match value count at row 1 如果我刪除id列,它的工作原理。 如何在不更改架構的情況下將此數據插入表中?

您必須在DataFrame中包含一個id字段,但它的值將被忽略並替換為自動遞增的ID。 那是:

case class Feature(id: Int, name: String, value: Double)

然后在創建Feature時將id設置為0或任何數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM