【发布时间】:2015-07-23 20:58:56
【问题描述】:
我在一个目录中有一组文件,我想从这些文件中读取一些特定文件作为一个 RDD,例如:
2000.txt
2001.txt
2002.txt
2003.txt
2004.txt
2005.txt
2006.txt
2007.txt
2008.txt
2009.txt
2010.txt
2011.txt
2012.txt
我想从这些文件中读取每个特定范围,例如:
range = 4
from = 2004
then read files : 2004.txt , 2005.txt , 2006.txt , 2007.txt
as one RDD (data)
如何在 spark scala 中做到这一点?
【问题讨论】:
-
先生成一个文件名序列,然后在上面调用sc.parallelize和map或者flatMap用读取文件内容的方法?这当然假设文件对所有 spark slave 可见。
-
@AHAD 这些文件存储在哪里?本地文件系统,HDFS,还有什么?文件的最大大小是多少?
-
这些文件在本地文件系统上,我想在节点集群上运行代码。
-
还有一些对路径“gloms”(通配符表达式)的支持,例如,
sparkContext.textFile("/path/to/200[89]*")获取 2008 年和 2009 年的数据。 -
@AHAD 如果文件存储在本地,则必须将它们复制到 HDFS 或从所有 spark 节点映射的 nfs 目录。当然,如果您只是在玩本地实例,这将不是问题。
标签: file scala apache-spark