我有两个几乎相同的写入db。斯卡拉声明,但是一个人给我一个错误,另一个却不给我,我不知道如何解决?有任何想法吗 ?
此语句有效
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()
这不起作用并抛出我编译错误
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()
_dev.scala:464:值写入不是org.apache.spark.sql.DataFrameReader的成员[错误] df_trsnss.write.format(“ jdbc”)。option(“ url”, db_url_2).option(“ dbtable”,“ trsnss”)。option(“ user”, db_user).option(“密码”, db_pwd).option(“ truncate”,“ true”)。mode(“ overwrite”)。save()
如果我删除第二条写语句或只是将其注释掉,则整个代码正在编译且没有错误。
答案 0 :(得分:4)
根据错误消息,df_trsnss
是一个DataFrameReader,而不是DataFrame。您可能忘记了致电load
。
val df_trsnss = spark.read.format(“ csv”)
代替
val df_trsnss = spark.read.format(“ csv”)。load(“ ...”)