如何在foreach循环中运行sc.textFile()并对其进行联合?

时间:2016-12-16 06:12:06

标签: scala apache-spark

所以这就是我一直在尝试的,我是一个新手在这里与火花一起工作!

我正在尝试执行此代码

val ii=sc.parallelize(Seq(("e.txt"),("r.txt"))).foreach{i => sc.textFile(i)}

但我得到了“Nullpointer例外”

谢谢!

1 个答案:

答案 0 :(得分:1)

您只需向sc.textFile添加多个文件即可。您不应该在地图操作中使用scmap函数将分发给不同的执行程序,sc存在于驱动程序中。因此它会抛出一个Nullpointer异常。

a.txt contents:

a.txt:line1
a.txt:line2

b.txt contents:

b.txt:line1
b.txt:line2

Spark允许您在同一操作中添加更多文件:

scala> sc.textFile("a.txt,b.txt").collect()
res1: Array[String] = Array(a.txt:line1, a.txt:line2, b.txt:line1, b.txt:line2)

希望这有助于Spark玩得开心!