我的输入设置的样子如下:火花如何在地图分裂和迭代每个元素
100,Jack,CEO,10000,IT
101,John,CEO,20000,CS
我想要分割每行并打印火花使用现有的API的所有列。
JavaRDD<Object> splitRdd = textFileRDD.map(x -> x.split(","));
我如何迭代并打印所有值
我的输入设置的样子如下:火花如何在地图分裂和迭代每个元素
100,Jack,CEO,10000,IT
101,John,CEO,20000,CS
我想要分割每行并打印火花使用现有的API的所有列。
JavaRDD<Object> splitRdd = textFileRDD.map(x -> x.split(","));
我如何迭代并打印所有值
我认为你可以做到这样:
JavaRDD<String> p = textFileRDD.flatMap(x -> Arrays.asList(x.split(",")));
p.foreach(x -> System.out.println(x));
这将打印所有colums。
因此,如果您在实际的分布式环境(具有多台机器的群集)中运行,则需要先调用collect,然后在收集的结果上调用println
。否则,它将简单地打印到群集的不同机器上的stdout上,并且您不会在驱动程序上看到它。如果您只在本地运行,则可以使用foreach
,因为所有内容都将写入相同的stdout。
在集群上火花外壳,我会做:
textFileRDD.map(line => line.split(",")).collect.foreach(array => println(array.mkString(",")))
这将输出这样的:
100,Jack,CEO,10000,IT
101,John,CEO,20000,CS
嗯......,将打印每个值在单独的行,而不是保持同一行的价值观,但也许这就是OP在寻找什么? –
yup ..但你回答是在斯卡拉我猜..我正确吗?/ – Aman
是的,你是正确的:)但转换到Java应该是微不足道的。 –