如何将spark sql查询结果映射到对象?

时间:2015-02-02 05:17:23

标签: apache-spark apache-spark-sql

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

在这里,您将如何查询表,将其转换为类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);