我试图用java编写一段spark流代码,我想把我的流输出到另一个文件中。我创建了一个名为words的javadstream,并且能够调用该方法 words.print()
. 但是,当我使用这个方法 words.saveAsTextFiles(arg,arg)
我得到一个 error: cannot find symbol
当我编译的时候。
我注意到javadocforjavadstream中的方法只存在于版本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流saveastextfiles函数。。。我用什么 words.forEachRDD
“从原始数据源创建rdd”?
请让我知道什么其他信息需要帮助我解决这个问题。我真的很感激!
1条答案
按热度按时间pvcm50d11#
try words.wraprdd(null).saveastextfile(路径)