spark新手,如何在driver 中接收多个stream,比如spark example中JavaNetworkWordCount例子
SparkConf sparkConf = new SparkConf().setAppName("JavaNetworkWordCount");
JavaStreamingContext ssc = new JavaStreamingContext(sparkConf, new Duration(10000));
JavaReceiverInputDStream<String> lines = ssc.socketTextStream(
host, ip, StorageLevels.MEMORY_ONLY); 这个只接收了一个数据源的流,在官网上有查到可以支持多源接收,但是没有给出例子,本以为可以按如下实现
SparkConf sparkConf = new SparkConf().setAppName("JavaNetworkWordCount");
JavaStreamingContext ssc = new JavaStreamingContext(sparkConf, new Duration(10000));
JavaReceiverInputDStream<String> lines = ssc.socketTextStream(
host1, ip1, StorageLevels.MEMORY_ONLY);
JavaReceiverInputDStream<String> lines2 = ssc.socketTextStream(
host2, ip2, StorageLevels.MEMORY_ONLY);
JavaDStream<String> words = lines.union(lines1);//利用union来合并但发现这种方式不行,union后的transform操作都不再执行。
另外发现csdn上spark模块问题好少,有没有其他论坛可以交流,stackoverflow需要翻墙才能体问,dt!
SparkConf sparkConf = new SparkConf().setAppName("JavaNetworkWordCount");
JavaStreamingContext ssc = new JavaStreamingContext(sparkConf, new Duration(10000));
JavaReceiverInputDStream<String> lines = ssc.socketTextStream(
host, ip, StorageLevels.MEMORY_ONLY); 这个只接收了一个数据源的流,在官网上有查到可以支持多源接收,但是没有给出例子,本以为可以按如下实现
SparkConf sparkConf = new SparkConf().setAppName("JavaNetworkWordCount");
JavaStreamingContext ssc = new JavaStreamingContext(sparkConf, new Duration(10000));
JavaReceiverInputDStream<String> lines = ssc.socketTextStream(
host1, ip1, StorageLevels.MEMORY_ONLY);
JavaReceiverInputDStream<String> lines2 = ssc.socketTextStream(
host2, ip2, StorageLevels.MEMORY_ONLY);
JavaDStream<String> words = lines.union(lines1);//利用union来合并但发现这种方式不行,union后的transform操作都不再执行。
另外发现csdn上spark模块问题好少,有没有其他论坛可以交流,stackoverflow需要翻墙才能体问,dt!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货