Spark Streaming Schema

时间:2016-03-22 19:11:21

标签: apache-spark cassandra spark-streaming

给定一个SparkFlumeEvents流(或者说,任何DStream),如何映射到适当的模式,以便可以使用

将流保存到Cassandra
stream.saveToCassandra(keyspace,table)

天真的尝试抱怨缺少列。

将stream.map()作为给定对象的最佳方法(看起来很麻烦)?

或......

另一种方法似乎是使用stream.foreachRDD并以某种方式映射到数据帧。鉴于stream方法支持直接保存到cassandra,这看起来也很麻烦。

那么正确的方法是什么?

1 个答案:

答案 0 :(得分:0)

通过指定要插入的键空间,tableName和列,使用spark cassandra连接器将流保存到Cassandra中。另一种方法是将数据映射到UDT并将其插入到数据库中。如果您只需要插入数据,我更喜欢将列指定为最快的方式。 文档中的示例完全相同,但您可以使用它的任何变体:

val wc = stream.flatMap(_.split("\\s+"))
    .map(x => (x, 1))
    .reduceByKey(_ + _)
    .saveToCassandra("streaming_test", "words", SomeColumns("word", "count"))