为什么 Spark 失败并显示“值写入不是 org.apache.spark.sql.DataFrameReader [错误] 的成员”?

And*_*rey 1 scala apache-spark apache-spark-sql

我有两个几乎相同的写入 db 。scala 声明,但是一个给我一个错误另一个不是,我不明白如何解决它?有任何想法吗 ?

此声明有效

df_pm_visits_by_site_trn.write.format("jdbc").option("url", db_url_2).option("dbtable", "pm_visits_by_site_trn").option("user", db_user).option("password", db_pwd).option("truncate","true").mode("overwrite").save()
Run Code Online (Sandbox Code Playgroud)

这个不起作用并抛出我编译错误

df_trsnss .write.format("jdbc").option("url", db_url_2).option("dbtable", "df_trsnss")               .option("user", db_user).option("password", db_pwd).option("truncate","true").mode("overwrite").save()
Run Code Online (Sandbox Code Playgroud)

_dev.scala:464: value write 不是 org.apache.spark.sql.DataFrameReader [error] df_trsnss.write.format("jdbc").option("url", db_url_2).option("dbtable" , "trsnss").option("user", db_user).option("password", db_pwd).option("truncate","true").mode("overwrite").save()

如果我删除我的第二个 write 语句,或者只是简单地将其注释掉,则整个代码都在编译且没有错误。

Sil*_*vio 5

根据错误消息,df_trsnss是 DataFrameReader,而不是 DataFrame。你可能忘记打电话了load

val df_trsnss = spark.read.format("csv")

代替

val df_trsnss = spark.read.format("csv").load("...")