【问题标题】:wordCounts.dstream().saveAsTextFiles("LOCAL FILE SYSTEM PATH", "txt"); does not write to filewordCounts.dstream().saveAsTextFiles("本地文件系统路径", "txt");不写入文件
【发布时间】:2016-02-24 22:48:51
【问题描述】:

我正在尝试将 JavaPairRDD 写入本地系统的文件中。代码如下:

 JavaPairDStream<String, Integer> wordCounts = words.mapToPair(
  new PairFunction<String, String, Integer>() {
    @Override
    public Tuple2<String, Integer> call(String s) {
      return new Tuple2<String, Integer>(s, 1);
    }
  }).reduceByKey(new Function2<Integer, Integer, Integer>() {
    @Override
    public Integer call(Integer i1, Integer i2) {
      return i1 + i2;
    }
  });
wordCounts.dstream().saveAsTextFiles("/home/laxmikant/Desktop/teppppp", "txt");

我正在尝试将日志或字数保存在文件中。但它无法保存在本地文件(不是 HDFS)中。

我还尝试使用

在 HDFS 上保存
saveAsHadoopFiles("hdfs://10.42.0.1:54310/stream","txt")

以上行不写入文件。任何人都可以告诉解决方案吗? stackoverflow 上的各种解决方案都不起作用。

【问题讨论】:

  • 不起作用不是对问题的良好描述。
  • @zero323 : 你能帮忙解决一下吗?
  • 能否请您包含该命令的结果?正如@zero323 所说,不起作用没有提供任何具体信息。
  • @MikelUrkia:它没有写入文件。它正在终端上打印,但未附加到文件。
  • 没有冒犯,但是当@Amensiac 说它不起作用并且 saveAsHadoopFiles() 是 API 时,写入文件不起作用是非常直观的。重点应该是为问题提供解决方案,这里没有这样做。

标签: apache-spark streaming pyspark spark-streaming hadoop-streaming


【解决方案1】:

尝试将输出写入绝对路径:

saveAsTextFiles("file:///home/laxmikant/Desktop/teppppp", "txt");

【讨论】:

  • wordCounts.dstream().saveAsTextFiles("/home/laxmikant/Desktop/teppppp", "txt");这只是绝对的本地文件路径。
  • 不明白为什么不写。它在终端上打印输出。但只是不写入文件。
  • @Amnesiac 也包含协议file:///
  • 同样的问题,都很奇怪
【解决方案2】:

语法似乎正确

saveAsHadoopFiles("hdfs://10.42.0.1:54310/stream","txt");

但完整的语法是

wordCounts.saveAsHadoopFiles("hdfs://10.42.0.1:54310/stream","txt"); // no dstream()

我的猜测是数据卡在某个系统缓冲区中并且没有被写入。如果您尝试使用“nc”流式传输更多数据,那么您可能会看到一个正在创建数据的文件。这就是我的情况。

【讨论】:

    【解决方案3】:
    rdd.saveAsTextFile("C:/Users/testUser/file.txt")
    

    它不会将数据保存到 file.txt 文件中。它将抛出 FileAlreadyExists 异常。因为此方法将创建自己的文件并将 rdd 保存在该特定文件中。

    尝试使用以下代码将 rdd 保存在文件中。

    rdd.SaveAsTextFile("C:/Users/testUser")
    

    它将在 testUser 文件夹下创建一个文件并将 rdd 保存到该文件中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-28
      • 1970-01-01
      • 2017-06-08
      • 1970-01-01
      • 2018-12-30
      • 2013-02-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多