我试图用Java编写一段Spark Streaming代码,我想将流输出到另一个文件中。我创建了一个名为words的JavaDStream,并且可以调用words.print()
方法。但是,当我使用words.saveAsTextFiles(arg,arg)
方法时,我在编译时会得到一个error: cannot find symbol
。
我在JavadocStream for JavaDStream中注意到该方法仅存在于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”?请让我知道需要什么其他信息来帮助我解决此问题。我真的很感激!
最佳答案
尝试
words.wrapRDD(null).saveAsTextFile(path)
关于java - JavaDStream Pom依赖关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29969761/