java - 如何使用mapPartitions函数将Rdd转换为数据集

标签 java apache-spark

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

根据 Spark 文档。 mapPartitions 比 map 函数更快。

这将有助于提高spark的性能。

最佳答案

下面是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;

    }

关于java - 如何使用mapPartitions函数将Rdd转换为数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58255363/

相关文章:

apache-spark - 如何仅从 Edge DataFrame 制作 GraphFrame

java - Spring MVC i18n 不工作

java - 在对话框中有两个 editText 并根据这些将肯定按钮设置为启用

java - JSON 解析器读取数组

java - spring datasource xml中的bean创建是否打开与数据库的连接?

arrays - 在 Spark Scala Dataframe 中迭代具有动态大小的数组列

java - 如何从 JavaPairRDD 中过滤记录

apache-spark - 如何在 Python 中从 pySpark 添加 SparkListener?

java - Spring MVC。关于愿景解决方案/设计问题的问题

regex - 如何在 Scala Spark 中将空字符串替换为 N/A?