给定一个SparkFlumeEvents流(或任何DStream),如何映射到适当的模式,以便可以使用
stream.saveToCassandra(keyspace,table)一次天真的尝试抱怨缺少列。
对给定对象使用stream.map()的最佳方法(这看起来很麻烦)?
或者..。
另一种方法似乎是使用stream.foreachRDD并以某种方式映射到数据帧。考虑到stream方法支持直接保存到cassandra,这似乎也很麻烦。
那么什么才是正确的方式呢?
发布于 2016-03-23 03:43:39
通过指定keyspace、tableName和要插入的列,使用spark Cassandra连接器将流保存到cassandra中。另一种方法是将数据映射到UDT并将其插入到数据库中。如果只需要插入数据,我更喜欢指定列,因为这是最快的方法。文档中的示例具有完全相同的功能,但您可以使用它的任何变体:
val wc = stream.flatMap(_.split("\\s+"))
.map(x => (x, 1))
.reduceByKey(_ + _)
.saveToCassandra("streaming_test", "words", SomeColumns("word", "count")) https://stackoverflow.com/questions/36163163
复制相似问题