【发布时间】:2015-04-30 13:58:07
【问题描述】:
我正在尝试用 Java 编写一段 Spark Streaming 代码,我想将我的流输出到另一个文件中。我创建了一个名为 words 的 JavaDStream,并且可以调用方法 words.print()。但是,当我使用 words.saveAsTextFiles(arg,arg) 方法时,我在编译时得到一个 error: cannot find symbol。
我在 JavaDStream 的 javadoc 中注意到该方法仅存在于版本 1.1.1 中,所以我认为我没有在我的 pom 文件中使用正确版本的依赖项.. 依赖项如下。
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.11</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-streaming_2.11</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>12.0</version>
</dependency>
<dependency>
<groupId>com.amit.spark</groupId>
<artifactId>spark-examples-1.2.1.2.2.4.2-2-hadoop2.6.0.2.2.4.2-2</artifactId>
<version>2.1.2</version>
</dependency>
这是正确的吗?还有另一种方法可以输出到我的文件中吗?我想我可以使用words.forEachRDD 并覆盖该函数并使用JavaRDD 方法保存到文本文件中。那会奏效吗?我是否使用错误的命令?我可以使用另一种环绕方式吗?我最终希望能够输出到 HDFS 集群中。
我看到这个帖子Spark streaming saveAsTextFiles function...我是用words.forEachRDD“从原始数据源创建一个RDD”吗?
请告诉我需要哪些其他信息来帮助我解决此问题。我真的很感激!
【问题讨论】:
标签: java maven hadoop apache-spark spark-streaming