apache-spark - 字数统计程序未在 spark 中产生所需的输出
问题描述
我正在为 spark 中的字数编写代码,但它给了我作为数组的输出,并在使用地图后给了我一段时间的 rdd:-
Array[(String, Int)] = Array((Welcome,1), (Programmings,1), (Spark,1), (in,1), (Saaransh,1))
我已经尝试过代码->
val f = sc.textFile("/root/Desktop/BigData/ScalaProgram/WordCount.txt")
val fm = f.flatMap(x => x.split(" ")).map(y => (y,1)).reduceByKey((a, b) => a+b).collect
val i = f.flatMap(x => x.split(" "))
val j = i.map(y => (y,1)).reduceByKey((a, b)=> a+b)
我希望输出为单个整数,它表示单个文件中的单词总数。
解决方案
我觉得措辞有点混乱,但如果这是问题:
我希望输出为单数整数,它是文件中的多个单词。
那么这就是你所需要的:
val fileRDD = sc.textFile("/FileStore/tables/some.txt")
val count_words_in_single_file = fileRDD.flatMap(x => x.split(" ")).map(y => (y,1)).map(w => (w._2)).sum
这将每个文件作为输入执行,如果每个输入有多个文件,则解决方案再次不同,需要获取文件名的 sc.wholeTextFiles,除非您想计算所有文件中的所有单词。
您将来可能需要考虑数据集。
推荐阅读
- firebase - 太多渲染反应钩子,useEffect,地图
- c# - 为什么不 IList
仅从 ICollection 继承 ? - android - Android ADB 设备离线,无法使其在线
- c++ - 如何管理基类中不同类型的数据?
- azure - 适用于 VM 和数据库的 Azure Migrate
- java - 使用 java 从 testng 中的 DataProviders 调用时减少参数数量
- android - 除了删除应用程序之外,是否有任何 SharedPreferences 重置条件?
- outlook - Outlook:自动隐藏客户端签名
- r - 绘制保存在一系列列表中的平均栅格像素值的 XYZ 时间序列图
- node.js - 在节点js API中逐块下载大文件