【问题标题】:Compilation Error with Spark cassandra connectorSpark cassandra 连接器的编译错误
【发布时间】:2017-10-30 17:13:26
【问题描述】:

我尝试使用 CassandraConnector 将 Row 映射到 scala bean 上,如下所示:

object AttachBookingToEventSparkJob {
   def main(args: Array[String]): Unit = {
      val conf = new SparkConf(true).setAppName(appName)
      val sc = new SparkContext(conf)
      val jobParameterTable = sc.cassandraTable[SparkJobMapper](keyspace, JOB_TABLE_NAME)

   }

   case class SparkJobMapper(val col1: String, val col2:String)

 }

有效。

但如果我尝试将类 SparkJobMapper 外部化(在同一个包中),我收到以下错误:

 error: No RowReaderFactory can be found for this type
 [INFO]     val jobParameterTable = sc.cassandraTable[SparkJobMapper]
 (keyspace, JOB_TABLE_NAME)

有什么想法?

【问题讨论】:

  • 如何执行应用程序? spark-shell 还是 spark-submit?请参阅github.com/datastax/spark-cassandra-connector/blob/master/… 以获得一些灵感。
  • 我只是在 Intellij 中用 maven 编译。我还没有进入提交步骤。
  • 我不确定 scala 中的隐式声明是如何工作的,如果我在文件中独立声明它,为什么编译器找不到我的类。

标签: scala apache-spark datastax-enterprise spark-cassandra-connector


【解决方案1】:

好吧,这是一个愚蠢的错误。忘记在我的类声明中添加 case 关键字。

【讨论】:

  • 您能解释一下为什么缺少 case 关键字会导致问题吗?我肯定错过了什么。是否将不带 case 关键字的文件添加到您的问题 + 整个编译错误中?谢谢。
猜你喜欢
  • 2017-04-19
  • 2014-12-01
  • 2015-03-12
  • 2020-10-17
  • 2017-01-13
  • 2017-01-30
  • 1970-01-01
  • 2016-05-25
  • 2021-11-11
相关资源
最近更新 更多