spark如何在map中拆分并迭代每个元素

Alk*_*lka 1 apache-spark

我的输入设置如下所示:

100,Jack,CEO,10000,IT
101,John,CEO,20000,CS
Run Code Online (Sandbox Code Playgroud)

我想分割每一行并使用spark中的现有api打印所有列.

JavaRDD<Object> splitRdd = textFileRDD.map(x -> x.split(","));  
Run Code Online (Sandbox Code Playgroud)

如何迭代并打印所有值

Gle*_*olt 5

因此,如果您在实际的分布式环境(具有许多计算机的群集)中运行,则需要先调用collect,然后调用println收集的结果.否则它将被简单地打印到群集的不同机器上的stdout,您将不会在驱动程序上看到它.如果您只在本地运行,则可以使用,foreach因为所有内容都将写入同一个标准输出.

在群集上的Spark-shell中,我会这样做:

textFileRDD.map(line => line.split(",")).collect.foreach(array => println(array.mkString(",")))  
Run Code Online (Sandbox Code Playgroud)

这将输出:

100,Jack,CEO,10000,IT
101,John,CEO,20000,CS  
Run Code Online (Sandbox Code Playgroud)