我正在尝试使用Spark Cassandra Connector来解决如何保存嵌套案例类的问题。举个简单的例子:
案例类:
case class Foo(id: String, bar: Bar)
case class Bar(field1: String)
Cassandra表:
CREATE TABLE foo (id text, field1 text, PRIMARY KEY (id));
Spark代码:
val foo = Foo("a", Bar("b"))
val fooRdd = sparkContext.parallelize(Seq(foo))
fooRdd.saveToCassandra(cassandraKeyspace, "foo")
结果:
Exception in thread "main" java.lang.IllegalArgumentException: requirement failed: Columns not found in Foo: [field1]
我意识到我可以创建一个新的案例类来平衡Foo,但是如果可能的话我宁愿不这样做。我玩过Column Mappers,但无济于事。还有更好的方法吗?