在spark2中一次写入两个输出

时间:2016-09-26 07:35:06

标签: java apache-spark apache-spark-2.0

我需要在spark2中一次写入两个输出。 我试过这样的事情:

    Dataset<Row> streamedData = spark.readStream().schema(getSchema())
            .json("src/test/data")
            .filter(x->{
                System.out.println("this is some fitler operation");
                return true;
            });

    StreamingQuery streamingQueury = streamedData
            .writeStream()
            .format("memory")
            .queryName("streameddata")
            .start();

    StreamingQuery streamingQueury2 = streamedData
            .writeStream()
            .format("console")
            .start();

    streamingQueury.awaitTermination(1000);
    streamingQueury2.awaitTermination(1000);
    streamingQueury.stop();
    streamingQueury2.stop();

    spark.sql("SELECT * FROM streameddata").show();

这将完成我需要的工作,但它将执行整个链两次,这可能是耗时的,我不需要做两次所有的转换,我只需要写两次。

我有办法吗?

由于

0 个答案:

没有答案