【发布时间】:2015-11-03 03:33:08
【问题描述】:
我有一个基类:
abstract class Student(id: String) extends Serializable
和子类:
case class StdAdd(id: String, name: String, class: String) extends Student(id)
保留代码:
val newStd: Student = new StdAdd("S001", "Xyz", 4)
sc.parallelize(Seq(newStd)).saveAsCassandraTable("demo", "newStd")
但是当我在 Cassandra 中检查表时,只存储了一列
cqlsh:diwo> SELECT * FROM details;
+------+
| id |
+------+
| S001 |
+------+
使用以下 sbt 依赖项:
libraryDependencies += "org.apache.spark" % "spark-core_2.11" % "1.4.0"
libraryDependencies += "org.apache.spark" % "spark-sql_2.11" % "1.4.0"
libraryDependencies += "com.datastax.spark" %% "spark-cassandra-connector" % "1.4.0"
【问题讨论】:
-
您的示例的初始化已将
newStd转换为您的抽象类。您可以尝试用val newStd = StdAdd("S001","Xyz", "4")替换它并再次运行它吗? -
如果我有两个子类怎么办?我需要单独持久化它们吗?
-
添加了一个答案,希望包含一些与您的其他问题相关的信息。
标签: scala cassandra apache-spark