繁体   English   中英

使用Spark创建JavaPairrRDD时出现问题

[英]Issue while creating JavaPairrRDD using spark

我有以下格式的数据

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

  • 您的调试语句未执行,因为您的驱动程序中没有任何操作,只有转换。 Spark是懒惰的,它发现您根本不使用RDD,因此不会理会它。
  • 我是否正确,关于单个产品的数据分散在输入文件的多行中? 在这种情况下,我将在Spark之外对这些数据进行预处理-Spark仅在排序后才具有单独行顺序的概念,很难或什至不可能(不确定)来正确处理它。 我将对该文件进行预处理,以使有关产品的所有数据都显示在单行中。 即使输入巨大的数据也不会有问题,因为行迭代器仅一次将少量数据加载到内存中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM