java - 如何使用 Spark Streaming Java API 将 Twitter 推文写入 HDFS

标签 java hadoop twitter apache-spark spark-streaming

SparkConf conf = new SparkConf().setMaster("local[2]").setAppName("SparkTwitterHelloWorldExample");
JavaStreamingContext jssc = new JavaStreamingContext(conf, new Duration(60000));
System.setProperty("twitter4j.oauth.consumerKey", consumerKey);
System.setProperty("twitter4j.oauth.consumerSecret", consumerSecret);
System.setProperty("twitter4j.oauth.accessToken", accessToken);
System.setProperty("twitter4j.oauth.accessTokenSecret", accessTokenSecret);
String[] filters = new String[] {"Narendra Modi"};
JavaReceiverInputDStream<Status> twitterStream = TwitterUtils.createStream(jssc,filters);

// Without filter: Output text of all tweets
JavaDStream<String> statuses = twitterStream.map(
        new Function<Status, String>() {
            public String call(Status status) { return status.getText(); }
        }
);
statuses.print();
statuses.saveAsHadoopFiles("hdfs://HadoopSystem-150s:8020/Spark_Twitter_out","txt");

我能够获取 Twitter 推文,但在写入 HDFS 时遇到错误。

有人可以帮我使用 Java 将推文保存到 HDFS

这是我收到的错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project SparkTwitterHelloWorldExample: Compilation failure [ERROR] /home/Hadoop/Mani/SparkTwitterHelloWorldExample-master/src/main/java/de/michaelgoettsche/SparkTwitterHelloWorldExample.java:[58,17] cannot find symbol [ERROR] symbol : method saveAsHadoopFiles(java.lang.String,java.lang.String) [ERROR] location: class org.apache.spark.streaming.api.java.JavaDStream

最佳答案

您需要使用 saveAsTextFile() 方法。 Hadoop 输出格式仅适用于 JavaPairDStream(它需要 keyvalue)。

解决办法是:

statuses.dstream().saveAsTextFiles(prefix, suffix);

关于java - 如何使用 Spark Streaming Java API 将 Twitter 推文写入 HDFS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32568436/

相关文章:

java - JPQL check in parameter not null 然后执行查询

linux - 无法使用 cygwin 在本地运行 hadoop

hadoop - 纱:我应该为3个节点配置什么?

ios - 我可以使用 STTwitter 库登录 Twitter 吗?

php - Twitter POST direct_messages/新 api 不工作

python - Twitter,错误 : urllib. 错误。HTTPError:HTTP 错误 401:未经授权

java - Kafka 消费者 - 在反序列化之前读取消息头

java - 生成 serialVersionID 而不是 1L、2L、

java - SSO sp 启动流程中 ?wa=wsignoutcleanup1.0 的意义是什么

hadoop - Hadoop权威指南 “National Climatic Data Center”获取数据