您好我试图直接从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
答案 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中创建问题。