【发布时间】:2016-05-08 23:56:56
【问题描述】:
我有以下格式的数据
Product1
somelines...
Iteam1
Iteam2
Product1
somelines....
Iteam1
Iteam3
我需要配对
(Product1:Item1,Item2)
(Product1:Item1,Item3)
我尝试使用以下 java 代码创建它(已更新以加深理解)
public static void main(String[] args) {
SparkConf sparkConf = new SparkConf().setAppName("Analyzer").setMaster("local[2]").set("sparkexecutor","1g");
JavaSparkContext ctx = new JavaSparkContext(sparkConf);
JavaPairRDD<String,String> lines = fetchProductData(ctx);
static JavaPairRDD<String, String> fetchProductData(JavaSparkContext ctx) {
JavaRDD<String> productLines = ctx.textFile("C:\\Service.log", 1);
System.out.println("called" + productLines);
JavaRDD<String[]> productLineMap = productLines.map(new Function<String, String[]>() {
String productname = "";
@Override
public String[] call(String s) throws Exception {
System.out.println("test"+s);
Matcher m = PRODUCTREGEX.matcher(s);
if(m.find()){
productname = m.group(1);
System.out.println("productname"+productname);
}
return s.split("\t");
}
});
JavaPairRDD<String, String> productMapKey = productLineMap.mapToPair(new PairFunction<String[], String, String>() {
@Override
public Tuple2<String, String> call(String[] strings) throws Exception {
String[] dataArray = strings[0].split(",");
String date_s = dataArray[5];
return new Tuple2<String, String>(dataArray[4], "product");
}
});
return productMapKey;
}
}
但我连代码中的这条语句都没有执行
System.out.println("test"+s);
任何机构都可以帮助我创建配对吗?我正在使用java
【问题讨论】:
-
你能把这段代码放在完整的上下文中吗(
main方法)? -
@zero323 我已经更新了代码。
标签: java apache-spark mapreduce