【问题标题】:How to map spark sql query result to object?如何将 spark sql 查询结果映射到对象?
【发布时间】:2015-02-02 05:17:22
【问题描述】:

据我所知,MyBatis 非常好。它可以将 jdbc 结果映射到一个对象。 对于 spark sql 查询结果,有什么好的方法可以将 spark 查询结果映射到对象吗?谢谢

【问题讨论】:

    标签: apache-spark apache-spark-sql


    【解决方案1】:

    据我所知,从 Spark SQL 查询收到的结果是一个 SchemaRDD,这是一个实体,您可以在该实体上执行标准 RDD 上授予的所有操作。回到您的问题,目前,将查询结果映射到类(以及因此,对象)的唯一方法是手动使用经典映射操作来操作存储在 SchemaRDD 中返回的行中的信息。

    【讨论】:

      【解决方案2】:

      在这里,您将如何查询表,将其转换为您的类YourClass 的对象,转换为JavaRDD,然后将其写入文件。 文件中的每一行都将从YourClass.toString()构造而来

      DataFrame sqlQuery = sqlContext.sql("SELECT a,b,c FROM table");
      JavaRDD<Triple> resultRows = sqlQuery.javaRDD().map(
              new Function<Row, YourClass>() {
                  public YourClass call(Row row) {
                      YourClass t = new YourClass(row.getString(0), row.getString(1), row.getString(2));
                      return t;
                  }
              });
      resultRows.saveAsTextFile(outputFolderPath);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-02-11
        • 1970-01-01
        • 2020-04-16
        • 1970-01-01
        • 1970-01-01
        • 2020-12-08
        • 2017-05-13
        相关资源
        最近更新 更多