我的輸入設置的樣子如下:火花如何在地圖分裂和迭代每個元素
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應該是微不足道的。 –