【问题标题】:How to create collection of objects Spark Dataset In Java?如何在 Java 中创建对象集合 Spark Dataset?
【发布时间】:2020-09-29 20:20:55
【问题描述】:

我正在研究过去几个月的 spark。其中Dataset用作对象的分布式集合。

我不担心它是如何分布的,而是一个基本的数据结构。我很想知道如何将它放在 java 中如果会创建我自己的 Dataset 类似的东西。

看起来像这样Dataset<Row>。其中 Row 是记录并且可以是多个。

这就是创建Dataset<Row>的工作原理

List<Row> rows = new ArrayList<Row>();
for (Employee e : employees) {

    rows.add(RowFactory.create(e.getFirstname(), 
                    e.getLastname(), 
                    e.getTitle(), 
                    e.getId(),
                    e.getDivision(), 
                    e.getSupervisor()));
}

return rows.iterator();

上面给了我这样的Dataset&lt;Row&gt;

任何人都可以分享如何将其放置在 Java 中吗?我的意思是java中的一些代码负责创建类似Dataset&lt;Row&gt;

我不是要求完整的代码,只是一个基本的想法,以便我可以清楚地想象它在后端的样子。

基本的小样本数据结构会很有帮助。

谢谢

【问题讨论】:

    标签: java apache-spark data-structures apache-spark-dataset


    【解决方案1】:

    createDataFrame 可以通过多种方式从列表中创建行数据集:

    Dataset<Row> datasetRows = spark.createDataFrame(employeesList, Employee.class);
    

    更新:如果您想知道它是如何工作的,那么您需要查看 GitHub 中的 Spark 源代码,但您将重写 API 提供的简单性和抽象性。我更喜欢不操作 Row 对象,因为它是动态的并且接受值列表。使用像 Employee 这样的 Java 对象可以帮助您编写不易出错的代码并拥有同质的存储数据。

    【讨论】:

    • 我正在尝试找到如何创建数据结构以便我可以获得这个 Dataset ?意思是 spark.createDataFrame 是如何工作的。仅在 Java 基础上进行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多