找不到类型的证据参数的隐含值 - Spark

时间:2015-09-21 16:47:29

标签: scala cassandra apache-spark

我是Scala的新手,并且可以对上述错误提供一些帮助。 以下是导致问题的代码片段:

case class Session (user_id: String, creation_date: BigInt, offline: Boolean)
case class User (user_id: String, app_id: Int, vendor_code: String, app_version: String)

val users = sc.cassandraTable[User]("leech_seed", "user").select("user_id", "app_id", "vendor_code", "app_version").where("last_active >=" + (timestamp - 86400000))
val sessions = sc.cassandraTable[Session]("leech_seed", "session").select("user_id", "creation_date", "offline").where("creation_date < " + timestamp + " AND creation_date >=" + (timestamp - 86400000))

当我在spark shell中使用此代码时,它工作正常,但当我尝试使用sbt构建jar时,我收到以下错误could not find implicit value for evidence parameter of type com.datastax.spark.connector.rdd.reader.RowReaderFactory[User]

这比我承认的更长,比如承认所以任何帮助/见解都会非常感激。

注意:我正在使用datastax cassandra connector进行火花

1 个答案:

答案 0 :(得分:1)

检查您的spark-cassandra连接器版本是否与您正在使用的Spark版本保持同步。我使用早于2.10-1.4.0-M3和Spark 1.4.1的连接器版本遇到了这些问题。

同时确保您的案例类是在主方法之外定义的 - 否则您将遇到No RowReaderFactory can be found for this type或类似的。