数据集<row>和JavaRDD <row>:如何消除标头

时间:2016-08-03 16:49:50

标签: java apache-spark

我想对我的数据应用回归。其中一个工作流程是将数据准备为JavaRDD,从带有标题的数据集开始。所以,我做的是以下内容:

==步骤1:将数据集转换为JavaRDD

    JavaRDD<Row> dataPointsWithHeader =modelDS.toJavaRDD();

==第2步:走第一排(我以为是标题)

Row header= dataPointsWithHeader.first();

==步骤3:通过

删除行标题
JavaRDD<Row> dataPointsWithoutHeader = dataPointsWithHeader.filter((Row row) -> {
            return !row.equals(header);
        });

上述方法的问题是:

a)步骤2的结果不是标题行;

b)如果有办法访问标题,步骤3的应用效率非常低。

我的问题是:

是否有一种有效的方式来访问标题并消除它?

非常感谢您的帮助和建议。

此致 卡罗

1 个答案:

答案 0 :(得分:0)

这应该是超级简单的。

如果您需要为给定数据集添加标头,则可以在构建函数中使用。

String[] header = modelDS.columns();

您可以在modelDS变量本身的顶部操作,直接操作所有操作。