这样做的目的是为了在hdfs中的第二个位置操作和保存每个数据文件的副本。我将使用
RddName.coalesce(1).saveAsTextFile(pathName)
将结果保存到hdfs。
这就是为什么我想做每一个文件分开,即使我相信性能将不那么有效。但是,我还没有决定如何将csv文件路径列表存储到一个字符串数组中,然后使用单独的rdd循环每个字符串。
让我们使用以下匿名示例作为hdfs源位置:
/data/email/click/date=2015-01-01/sent_20150101.csv
/data/email/click/date=2015-01-02/sent_20150102.csv
/data/email/click/date=2015-01-03/sent_20150103.csv
我知道如何使用hadoop fs shell列出文件路径:
HDFS DFS -ls /data/email/click/*/*.csv
我知道如何为所有数据创建一个rdd:
val sentRdd = sc.textFile( "/data/email/click/*/*.csv" )
3条答案
按热度按时间pvabu6sv1#
这就是最终对我起作用的原因:
pexxcrt22#
我还没有完全测试过,但类似的方法似乎很有效:
aij0ehis3#
sc.wholetextfiles(路径)应该有帮助。它给出(filepath,filecontent)的rdd。