简体   繁体   English

Cassandra的Java Spark流

[英]Java Spark Streaming with Cassandra

I'm trying to do java spark streaming with Cassandra. 我正在尝试用Cassandra进行Java Spark流式传输。 I have done the same with Scala, but I have no clue how to proceed in Java. 我已经对Scala做过同样的事情,但是我不知道如何在Java中进行。 The web did not give me any examples with java spark streaming and Cassandra. 网络上没有提供任何有关Java Spark Streaming和Cassandra的示例。

Could some one please show me how to have the below Scala code in java: 有人可以告诉我如何在Java中使用以下Scala代码:

import org.apache.spark.streaming.dstream.ConstantInputDStream

val ssc = new StreamingContext(conf, Seconds(10))

val cassandraRDD = ssc.cassandraTable("mykeyspace", "users").select("fname", "lname").where("lname = ?", "yu")

val dstream = new ConstantInputDStream(ssc, cassandraRDD)

dstream.foreachRDD{ rdd => 
    // any action will trigger the underlying cassandra query, using collect to have a simple output
    println(rdd.collect.mkString("\n")) 
}
ssc.start()
ssc.awaitTermination()

Any help is appreciated. 任何帮助表示赞赏。 Thanks 谢谢

In your foreachRDD transformation you can transform your data as per cassandra table format. 在foreachRDD转换中,您可以按照cassandra表格式转换数据。

JavaRDD<TestBean> cassandraRDD = testRDD
                .flatMap(new FlatMapFunction<Tuple2<String, List<Map<String, Object>>>, TestBean>() {

                    private static final long serialVersionUID = 1L;

                    @Override
                    public Iterable<TestBean> call(Tuple2<String, List<Map<String, Object>>> tuple) throws Exception {

                        return rawData;
                    }
                });

            javaFunctions(jsonRDD).writerBuilder(CASSANDRA_KEYSPACE,CASSANDRA_TABLE, mapToRow(TestBean.class)).saveToCassandra();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM