[英]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.