SparkはMySQLのエラーを書きましたjava.sql.BatchUpdateException
1845 ワード
Spark Data FrameはMySQLタイムズに次のエラーを書きました.
java.sql.BatchUpdateException: Column ‘name’ specified twice at sun.reflect
理由:書き出されたDataFrameテーブル構造とMySQLで作成されたテーブル構造が一致せず、2つのDataFrame joinの結果のうち2つの列が「name」列であった.
解決:DataFrame書き出し構造を変更します.コアコードは次のとおりです.
java.sql.BatchUpdateException: Column ‘name’ specified twice at sun.reflect
理由:書き出されたDataFrameテーブル構造とMySQLで作成されたテーブル構造が一致せず、2つのDataFrame joinの結果のうち2つの列が「name」列であった.
解決:DataFrame書き出し構造を変更します.コアコードは次のとおりです.
val res1: Dataset[Row] = studentInfoDF.join(stu_scoresDF,
studentInfoDF.col("name") === stu_scoresDF.col("name"))
.filter(stu_scoresDF.col("score") > 80)
res1.show(false)
import spark.implicits._
val out: Dataset[(String, Int, String)] = res1.map(row => (row.getAs[String](0),
row.getAs[Int](1),
row.getAs[String](3)))
out.toDF("name","age","score").write.mode("append").jdbc(url,"good_stu",prop)