繁体   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