我有一组日志文件,我想读入RDD。 这些文件都是压缩的.gz文件名是日期戳。 这些文件的来源是维基百科的页面视图统计数据
http://dumps.wikimedia.org/other/pagecounts-raw/
文件名如下所示:
pagecounts-20090501-000000.gz
pagecounts-20090501-010000.gz
pagecounts-20090501-020000.gz
我想要做的是读取目录中的所有此类文件,并将文件名中的日期(例如20090501)添加到生成的RDD的每一行。 我首先想到使用 sc.wholeTextFiles(..)而不是 sc.textFile(..),它创建了一个PairRDD,其中键是带有路径的文件名, 但 sc.wholeTextFiles()不处理压缩的.gz文件。
欢迎任何建议。
答案 0 :(得分:1)
以下似乎对我Spark 1.6.0
:
sc.wholeTextFiles("file:///tmp/*.gz").flatMapValues(y => y.split("\n")).take(10).foreach(println)
示例输出:
(档案:/ C:/tmp/pagecounts-20160101-000000.gz,aa 271_a.C 1 4675)
(档案:/ C:/tmp/pagecounts-20160101-000000.gz,aa Battaglia_di_Qade%C5%A1 / it / Battaglia_dell%27Oronte 1 4765)
(文件:/ C:/tmp/pagecounts-20160101-000000.gz,aa类别:User_th 1 4770)
(档案:/ C:/tmp/pagecounts-20160101-000000.gz,aa Chiron_Elias_Krase 1 4694)