1

嗨,我正在尝试运行直接从Mobius Github复制的以下示例。但是当尝试使用方法 SaveAsTextFile(string filepath) 时,它没有找到该方法。相反,它显示了图 1 中的错误。

我引用的是最新发布的:“Microsoft.SparkCLR”版本=“1.6.100”。

 var lines = sparkContext.TextFile(@"hdfs://path/to/input.txt");  
    var words = lines.FlatMap(s => s.Split(' '));
    var wordCounts = words.Map(w => new KeyValuePair<string, int>(w.Trim(), 1))  
                          .ReduceByKey((x, y) => x + y);  
    var wordCountCollection = wordCounts.Collect();  
    wordCounts.SaveAsTextFile(@"hdfs://path/to/wordcount.txt");  

图 1:不包含定义....最好的选择等等等等

4

1 回答 1

2

尝试以下行,它将起作用。

wordCounts.Map(wc => wc.Key + "," + wc.Value)
          .SaveAsTextFile(@"hdfs://path/to/wordcount.txt");

由于图中的错误消息表明,如果 RDD 是字符串类型,则 SaveAsTextFile() 可用。上面的代码将键值对的 RDD 转换为字符串 RDD。自述文件中的代码示例需要更新。如果您有兴趣,请随时发送 PR 来修复它。

Mobius 项目中有一个讨论是否使 SaveAsTextFile() 可用于所有 RDD 类型。问题是在 RDD 中支持的类型上的 ToString 在写入文本文件时可能并不总是导致可读的字符串。如果您对此有任何意见,请随时在 GitHub 的 Mobius 存储库中创建问题。

于 2016-06-30T18:40:43.850 回答