如何使用Spark和JavaRDD检索特定行?

时间:2017-05-13 07:22:30

标签: java apache-spark

我使用下面的代码从文本文件中检索数据。检索数据使用了特定的关键字(错误)。

        JavaRDD<Row> rowRDD = input.map(RowFactory::create);
        List<StructField> fields = Arrays.asList(
          DataTypes.createStructField("error_msg", DataTypes.StringType, true));
        StructType schema = DataTypes.createStructType(fields);

        DataFrame df = sqlContext.createDataFrame(rowRDD, schema);

        Column column = new Column("error_msg");

        DataFrame errors = df.filter(column.like("%Error%"));
        System.out.println(errors.showString(1));

执行上述代码后,输出如下

+--------------------+
|           error_msg|
+--------------------+
|java.lang.OutOfMe...|
+--------------------+

我想删除所有'+'和' - '标记,只获取消息行(java.lang.OutOfMe ...)。而且输出中也没有显示整行。 是否有任何方法或解决方法可以解决此问题。任何帮助都可以得到真正的赞赏。

1 个答案:

答案 0 :(得分:0)

使用errors.first()时,可以获取整个已识别的行并按照您的方式将其拆分。