我嘗試使用Spark和Cassandra Spark連接器將流數據保存到Cassandra中。使用DataStax Spark連接器在Cassandra中保存空值
我做類似如下:
創建一個模型類:
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.
是否有使用星火卡桑德拉連接到存儲空值的方法嗎?
我不這麼認爲。我嘗試使用Datastax的java映射驅動程序將空值插入到Cassandra表中,即使列類型爲int和float,它也是成功的。而且Cassandra也顯示null並返回null,因此「Cassandra沒有f null的概念」這個陳述並不是很有說服力。 –