Mobius (SparkCLR) 中是否不再提供 SaveAsTextFile 方法?

Is the SaveAsTextFile method no longer available in Mobius (SparkCLR)?

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

我指的是最新发布的版本:"Microsoft.SparkCLR" version="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");  

Figure 1: does not contain definition....best alternative blah blah

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

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

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

在 Mobius 项目中讨论了是否使 SaveAsTextFile() 可用于所有 RDD 类型。问题是 RDD 支持的类型上的 ToString 在写入文本文件时可能并不总是产生可读的字符串。如果您对此有任何意见,请随时在 Mobius repo in GitHub.

中提出问题