【发布时间】:2023-03-28 21:25:01
【问题描述】:
我正在尝试将 Spark 2.0 与 Play 一起使用! 2.5但我没能让它正常工作(而且Github上好像没有例子)。
我没有任何编译错误,但我有一些奇怪的执行错误。
例如:
几乎所有对Dataset 或Dataframe 的操作都会导致NullPointerException:
val ds: Dataset[Event] = df.as[Event]
println(ds.count()) //Works well and prints the good results
ds.collect() // --> NullPointerException
ds.show 也导致NullPointerException。
所以我遗漏了一个大问题,所以我认为它来自不兼容的版本。这是我build.sbt的相关部分:
object Version {
val scala = "2.11.8"
val spark = "2.0.0"
val postgreSQL = "9.4.1211.jre7"
}
object Library {
val sparkSQL = "org.apache.spark" %% "spark-sql" % Version.spark
val sparkMLLib = "org.apache.spark" %% "spark-mllib" % Version.spark
val sparkCore = "org.apache.spark" %% "spark-core" % Version.spark
val postgreSQL = "org.postgresql" % "postgresql" % Version.postgreSQL
}
object Dependencies {
import Library._
val dependencies = Seq(
sparkSQL,
sparkMLLib,
sparkCore,
postgreSQL)
}
lazy val root = (project in file("."))
.settings(scalaVersion := Version.scala)
.enablePlugins(PlayScala)
libraryDependencies ++= Dependencies.dependencies
dependencyOverrides ++= Set(
"com.fasterxml.jackson.core" % "jackson-databind" % "2.7.4",
"com.fasterxml.jackson.module" %% "jackson-module-scala" % "2.7.4"
)
【问题讨论】:
-
您能否分享更多代码,例如上面的 df 是数据框,如果它在公共 git repo 中,您可以提供它的链接
-
我的数据框是这样的:
spark.sqlContext.read.jdbc(databaseURL, query, connectionProperties)是一个有效的 SQL 查询。 -
还有 git 仓库:github.com/ticketapp/play2.5Spark2.0
-
你在 spark-shell 上试用过它在那里工作正常吗?因为我用 shell n 尝试过它的工作原理,请你显示你得到了什么错误。
-
不,我没有尝试使用 Spark-shell,但我必须直接在应用程序中使用它。我在 Github littel 应用程序中遇到的错误是:尝试将 struct
映射到 Tuple1,但由于字段数不对齐而失败
标签: apache-spark playframework sbt playframework-2.5 apache-spark-2.0