【发布时间】:2016-09-21 00:25:20
【问题描述】:
我正在开发 Spark/Cassandra 应用程序 (java),在读取/映射 UDT 值时遇到了问题。
即,
CassandraJavaRDD<Pojo> rdd = javaFunctions(sc).cassandraTable("keyspace", "table", mapRowTo(Pojo.class));
从仅包含原始类型的 C* 表完成映射时工作正常,但由于 NPE 失败
Requested a TypeTag of the GettableToMappedTypeConverter which can't deserialize TypeTags due to Scala 2.10 TypeTag limitation. They come back as nulls and therefore you see this NPE.
如果使用了某些列的 UDT。
绕过此 NPE 并实现正确反序列化的最佳方法是什么?
谢谢
PS。奇怪的是,将 Java POJO 写入 C* 表可以正常工作(对原语和 UDT 而言),使用如下简单代码:
javaFunctions(rdd).writerBuilder("keyspace", "table", mapToRow(Pojo.class)).saveToCassandra();
【问题讨论】:
标签: java apache-spark cassandra datastax-java-driver