2015-02-02 4 views

ответ

0

Насколько я знаю, результатом, полученным от SQL-запроса Spark, является SchemaRDD, объект, на котором вы можете выполнять все операции, предоставленные на стандартном RDD. Возвращаясь к вашему вопросу, на данный момент единственный способ сопоставить результат запроса с классом (и, следовательно, с объектом) вручную с помощью классической операции с картами для управления информацией, хранящейся внутри возвращенных строк в вашем SchemaRDD.

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); 
Смежные вопросы