[英]How to perform filter in javardd by header?
我正在處理JavaRDD
代碼,其中必須將csv上傳到名為RestaurantDetailRDD
的JavaRDD
。 RestaurantDetailRDD
有一個地址列,必須將其過濾到另一個名為addressRDD
RDD
。 我只需要過濾條件,即可按csv中提供的標頭拆分地址列。
// provide path to input text file
String path = "/home/lingesh/Downloads/newitems.csv";
// read text file to RDD
JavaRDD<String> restaurantDetailRDD = sc.textFile(path);
// collect RDD for printing
for(String line:restaurantDetailRDD.collect()){
System.out.println(line);
}
如您所見,我剛剛創建了RestaurantDetailRDD
我希望地址列放在不同的RDD
如果知道address
列的位置,則只需執行map
功能即可將RDD轉換為另一個RDD。
JavaRDD<String> columnRdd = rdd.map(f -> {
String[] arr = f.split(",");
return arr[position];
});
System.out.println("new count " + columnRdd.count());
這樣更好,因為您正在使用Spark函數,這意味着您可以處理Spark分區並加快計算速度。 在真正需要打印結果進行測試之前,請不要嘗試使用基本的Java函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.