【问题标题】:How to convert Rdd to dataset using mapPartitions Function如何使用 mapPartitions 函数将 Rdd 转换为数据集
【发布时间】:2019-10-06 08:06:09
【问题描述】:

我正在尝试将 java spark RDD 转换为数据集。

根据火花文档。 mapPartitions 比 map 函数快。

这将有助于提高火花的性能。

【问题讨论】:

标签: java apache-spark


【解决方案1】:

下面是java代码。

JavaRDD<UserData> UserRowRDD = userSuccessRDD.mapPartitions(new FlatMapFunction<Iterator<String>, UserData>() {

            @Override
            public Iterator call(Iterator<String> input) throws Exception {
                List<UserData> result = new ArrayList<>();
                while (input.hasNext()) {
                    result.add(Util.getEnrichedUser(UserHeader, input.next()));
                }
                return result.iterator();
            }
        });

public static UserData getEnrichedUser(String[] header, String rddString) {

                    String[] parts = rddString.split("\\^");
                    UserData output = new UserData();
                    for (int i = 0; i < parts.length; i++) {
                        try {
                            BeanUtils.setProperty(output, header[i], parts[i]);
                        } catch (IllegalAccessException | InvocationTargetException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }
                    }
                    return output;

    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-14
    • 2016-12-12
    • 2017-07-08
    • 2018-11-14
    • 2023-02-09
    • 2020-01-24
    • 1970-01-01
    • 2017-12-14
    相关资源
    最近更新 更多