0
このように予測結果DataFrameをOracleデータベースに書き戻したいとします。 model.transform(testDate).write.mode(SaveMode.Overwrite).jdbc(url、 "b_spark_tst" 、小道具)Spark write DataFrame out jdbcエラー
が、私は、このエラーメッセージが表示されます:
Exception in thread "main" java.lang.IllegalArgumentException: Can't get JDBC type for array<string>
誰もがデータベースにデータフレームを書き出す方法を私を助けることができますか?
ありがとうございました!
アップデート:私は同じ問題を抱えていたし、それはあなたが言葉のフィールド内の要素フィールドを保存しようとしている方法に関連している
root
|-- CATEG: string (nullable = true)
|-- COMM: string (nullable = true)
|-- label: double (nullable = true)
|-- words: array (nullable = true)
| |-- element: string (containsNull = true)
|-- features: vector (nullable = true)
|-- rawPrediction: vector (nullable = true)
|-- probability: vector (nullable = true)
|-- prediction: double (nullable = true)
テーブルをどのように定義して上書きすることができますか?そして、データフレームのスキーマ構造はどのように見えますか? – FaigB
がスキーマ構造で更新されました。私は言葉の列が問題になると思います。私はまだデータベースにテーブルを作成していない..私は? :) – solarenqu
私のコードを変更した場合:model.transform(testDate).select( "CATEG"、 "COMM"、 "ラベル"、 "fatures"、 "rawPrediction"、 "確率"、 "予測")。write.mode (SaveMode.Append).jdbc(url、 "b_spark_tst"、prop)ラベル例外は見られません。:( – solarenqu