【问题标题】:Why does Spark fail with "value write is not a member of org.apache.spark.sql.DataFrameReader [error]"?为什么 Spark 失败并显示“值写入不是 org.apache.spark.sql.DataFrameReader [error] 的成员”?
【发布时间】:2018-10-14 20:33:33
【问题描述】:

我有两个几乎相同的写入 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()

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

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()

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

【问题讨论】:

    标签: scala apache-spark apache-spark-sql


    【解决方案1】:

    根据错误消息,df_trsnss 是 DataFrameReader,而不是 DataFrame。您可能忘记致电load

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

    而不是

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

    【讨论】: