我试图用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&#34;?
请让我知道帮助我解决此问题所需的其他信息。我真的很感激!
答案 0 :(得分:0)
尝试 words.wrapRDD(空).saveAsTextFile(路径)