我有一个程序,它显示xml中的一些值,例如显示前十个标签 来自xml
<row Id="6" TagName="frames" Count="513" ExcerptPostId="5390" WikiPostId="5389" />
我有这个
Map<String, Integer> tagMap = new HashMap<String, Integer>();
Dataset<String> tagData = spark.read().format("com.databricks.spark.xml").textFile(tagsFile).cache();
List<String> tags = tagData.collectAsList();
for (String t : tags.subList(2, tags.size() - 1)) {
if (t.contains("ExcerptPostId")) {
tagMap.put(t.substring(t.indexOf("TagName") + 9, t.indexOf("Count") - 2),
Integer.parseInt(t.substring(t.indexOf("Count") + 7, t.indexOf("ExcerptPostId") - 2)));
} else {
tagMap.put(t.substring(t.indexOf("TagName") + 9, t.indexOf("Count") - 2),
Integer.parseInt(t.substring(t.indexOf("Count") + 7, t.indexOf("/>") - 2)));
}
}
tagMap.entrySet().stream().sorted(Map.Entry.comparingByValue(Comparator.reverseOrder())).limit(10)
.forEach(System.out::println);
为每个记录显示文件中的两个值,非常简单。 现在,我想像这样从xml正文中计算出最受欢迎的单词
<row Id="172" Body="this text;" " />
但是我不知道如何从中提取单个单词并计数。