Я пытаюсь сохранить данные потока в Cassandra, используя Spark и Cassandra Spark Connector.
Я сделал что-то вроде следующего:
Создать класс модели:
public class ContentModel {
String id;
String available_at; //may be null
public ContentModel(String id, String available_at){
this.id=id;
this.available_at=available_at,
}
}
Сопоставление потокового контента с моделью:
JavaDStream<ContentModel> contentsToModel = myStream.map(new Function<String, ContentModel>() {
@Override
public ContentModel call(String content) throws Exception {
String[] parts = content.split(",");
return new ContentModel(parts[0], parts[1]);
}
});
Сохранить
CassandraStreamingJavaUtil.javaFunctions(contentsToModel).writerBuilder("data", "contents", CassandraJavaUtil.mapToRow(ContentModel.class)).saveToCassandra();
Если некоторые значения null
, я получаю следующую ошибку:
com.datastax.spark.connector.types.TypeConversionException: Cannot convert object null to struct.ValueRepr.
Есть ли способ сохранить нулевые значения, используя Spark Cassandra Connector?