Mobius(SparkCLR)中的SaveAsTextFile方法是否不再可用?

时间:2016-06-30 12:06:31

标签: c# apache-spark mobius

您好我试图直接从Mobius Github复制以下示例。但是当尝试使用SaveAsTextFile方法(字符串文件路径)时,它找不到该方法。相反,它显示了图1中的错误。

我引用了最新发布的消息:" Microsoft.SparkCLR"版本=" 1.6.100&#34 ;.

 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

1 个答案:

答案 0 :(得分:2)

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

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

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

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