![](/img/trans.png)
[英]How do I collect a List of Strings from spark DataFrame Column after a GroupBy operation?
[英]getting null Graph fields from spark map operation after collect
將Java + Scala與apache Spark結合使用。 我在javaRDDs中有一些String數據( textdata
變量),我使用助手類將其轉換為scala圖:
SparkConf = new SparkConf(true); // also set parameters, etc
JavaSparkContext sc = new JavaSparkContext(conf);
JavaRDD<Graph<String, Object>> graphs = textdata.map(new GraphConverterClass(JavaSparkContext.toSparkContext(sc)));
List<Graph<String,Object>> graphsList = graphs.collect();
轉換器類實現Function接口,因此有一個調用:
public Graph<String, Object> call(String data)
{
Graph<String,object> mygraph = someFunc(data,sc);
return mygraph;
}
當我運行它時,在轉換器類內部,我可以看到mygraph
結果,這很好。
但是,在列表中我收集了驅動程序,盡管圖的數量正確,但每個圖的頂點和邊字段均為空。
在上述情況下,使用另一個虛擬類代替Graph可以很好地工作,即保留其字段的值。
那么為什么圖形對象沒有正確收集?
鑒於textData
是RDD,因此不支持使用通過SparkContext關閉的map
函數。
SparkContext是僅位於驅動程序中的對象,在執行程序上為“ null”。 (令人驚訝的是它沒有給出SerializationException
)
可以在該操作的結果類型上發現相同的問題: JavaRDD<Graph<String, Object>>
嵌套的RDD在概念上是未定義的。
一種可能的解決方案是從創建頂點和邊緣RDD並使用Graph
構造函數構建目標圖的角度重新考慮該過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.