如何在JAVA中编写SPARK映射函数来返回子字符串?
我有一个JavaRDD对象,希望通过选择原始JavaRDD对象的子字符串来创建另一个新的JavaRDD对象。如何做到这一点如何在JAVA中编写SPARK映射函数来返回子字符串?,java,apache-spark,Java,Apache Spark,我有一个JavaRDD对象,希望通过选择原始JavaRDD对象的子字符串来创建另一个新的JavaRDD对象。如何做到这一点 // Read input_train data logger.info("start to read file"); JavaRDD<String> inputDataRaw= sc.textFile(input_train); JavaRDD inputDataRaw=sc.textFile(输入序列); inputDataRaw.new
// Read input_train data
logger.info("start to read file");
JavaRDD<String> inputDataRaw= sc.textFile(input_train);
JavaRDD inputDataRaw=sc.textFile(输入序列);
inputDataRaw.new函数(){
公共字符串调用(字符串arg0)引发异常{
返回arg0.substring(0,6);
}
});
下面是一个简单的选项。我包括了较新的JDK8 lambda语法以及较旧的JDK6兼容语法:
JavaRDD<String> inputDataRaw = sc.textFile("file.txt");
JavaRDD<String> mapped_jdk8 = inputDataRaw.map(s -> s.substring(0, 6));
JavaRDD<String> mapped_jdk6 = inputDataRaw.map(new Function<String, String>() {
@Override
public String call(String s) throws Exception {
return s.substring(0, 6);
}
});
JavaRDD inputDataRaw=sc.textFile(“file.txt”);
javarddmapped_jdk8=inputDataRaw.map(s->s.substring(0,6));
JavaRDD mapped_jdk6=inputDataRaw.map(新函数(){
@凌驾
公共字符串调用(字符串s)引发异常{
返回s.substring(0,6);
}
});
我认为从一行中抓取第一个对象的子字符串不是一个好主意
substring(0,6) # this will help only when first object is of fixed size.
相反,首先将线与线分开;(逗号)并获取第一个索引
JavaRDD<String> inputDataRaw = sc.textFile("file.txt");
JavaRDD<String> mapped_jdk8 = inputDataRaw.map(s -> s.split(";")).map(r -> r(0));
JavaRDD inputDataRaw=sc.textFile(“file.txt”);
javarddmapped_jdk8=inputDataRaw.map(s->s.split(“;”).map(r->r(0));
尝试r[0]如果您在java中遇到任何语法错误,我没有在java中尝试lambda,但我只使用scala使用
rdd.map()
-同时检查文档。这是Spark上的一个基本操作:@maasg谢谢你的指针。你能提供更多的细节吗?你能帮忙吗?
substring(0,6) # this will help only when first object is of fixed size.
JavaRDD<String> inputDataRaw = sc.textFile("file.txt");
JavaRDD<String> mapped_jdk8 = inputDataRaw.map(s -> s.split(";")).map(r -> r(0));