如何将JavaMapwithStateDstream的内容输出到textFile?

时间:2016-04-22 14:08:39

标签: apache-spark real-time spark-streaming

所有。我有两个关于Spark-streaming应用程序的问题。

首先是如何将JavaMapwithStateDstream的内容输出到textFile中,我浏览了API文档,并找到了它的Dstreamlike接口。所以我使用下面的代码,尝试输出含量:

add_action( 'pre_get_posts', 'rc_modify_query_get_design_projects' );
function rc_modify_query_get_design_projects( $query ) {

    if($query->is_main_query() && $query->query_vars['post_type'] == 'product' ) {

    $query->set('meta_key', 'wholesale_price');
    $query->set('meta_compare', '>');
    $query->set('meta_value', '0');

}

但是,没有输出到hdfs路径。但是我可以从控制台看到打印结果

enter image description here

请告诉我是什么问题?如何输出JavaMapwithStateDstream的内容?

第二个问题:

我想在每个持续时间更新实时结果,即使没有其他新的流入,我该如何实现呢?

感谢。

1 个答案:

答案 0 :(得分:0)

我发现JavaMapwithStateDstream可以打印出一些但不保存textFile的原因,因为每次持续时间都会更新/初始化,流入的新数据将在下次初始化时被覆盖,因此无法保存任何内容进入textFile。

解决方法是声明一个新变量来复制stateDstream的值, 我在这里使用Dstream,我认为JavaPairDstream也应该没问题。

DStream<Tuple2<String, Integer>> fin_Counts = stateDstream.dstream();
fin_Counts.print();

fin_Counts可以更新和保存。