我需要存儲來自kafka-> spark streaming-> cassandra的值。將火花值保存到Cassandra
現在,我收到來自kafka-> spark的值,並且我有一個spark工作將值保存到cassandra db中。但是,我正面臨數據類型dstream的問題。
在下面的代碼片段中,您可以看到我如何將DStream轉換爲Python友好的列表對象,以便我可以使用它,但它會給出錯誤。在卡夫卡製片
輸入:
Byrne 24 San Diego [email protected] Rob
火花的工作:
map1={'spark-kafka':1}
kafkaStream = KafkaUtils.createStream(stream, 'localhost:2181', "name", map1)
lines = kafkaStream.map(lambda x: x[1])
words = lines.flatMap(lambda line: line.split(" "))
words.pprint() # outputs-> Byrne 24 SanDiego [email protected] Rob
list=[lambda word for word in words]
#gives an error -> TypeError: 'TransformedDStream' object is not iterable
這是怎麼了,我從火花>卡桑德拉節約值
rdd2=sc.parallelize([{
... "lastname":'Byrne',
... "age":24,
... "city":"SanDiego",
... "email":"[email protected]",
... "firstname":"Rob"}])
rdd2.saveToCassandra("keyspace2","users")
什麼將DStream對象轉換爲字典或其他類型的最佳方法做我想在這裏做什麼的最佳方式?
我只需要將從kafka收到的值(以DStream的形式)保存在Cassandra中。
謝謝,任何幫助將是不錯的!
版本:
Cassandra v2.1.12
Spark v1.4.1
Scala 2.10
因爲這是我的錯誤,所以更多與$ JAVA_HOME問題有關而不是mesos。 – HackCode
好男人放鬆。沒有理由在這裏得到超。現在我們不要垃圾此帖。 – HackCode