簡體   English   中英

如何在標頭中的javardd中執行過濾?

[英]How to perform filter in javardd by header?

我正在處理JavaRDD代碼,其中必須將csv上傳到名為RestaurantDetailRDDJavaRDD 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM