我有一个用制表符分隔的文件。第三列应该是我的关键字,整个记录应该是我的值(按照Map reduce概念)。
val cefFile = sc.textFile("C:\\text1.txt")
val cefDim1 = cefFile.filter { line => line.startsWith("1") }
val joinedRDD = cefFile.map(x => x.split("\\t"))
joinedRDD.first().foreach { println }
我能够获得第一列的值,但无法获得第三列的值。谁能建议我如何做到这一点?
完成拆分后,x.split("\\t")
您的rdd(在您的示例中您joinedRDD
调用了它,但parsedRDD
由于我们还没有加入任何内容,所以我将其称为)将成为数组的RDD。通过执行操作,我们可以将其转换为键/值元组的数组parsedRDD.map(r => (r(2), r))
。话虽这么说-您不仅限于Spark中的map&reduce操作,因此可能更适合其他数据结构。同样,对于制表符分隔的文件,如果这很适合您要解决的最终问题,则可以将spark-csv与Spark DataFrames一起使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句