Le query Spark SQL 1.2.0 restituiscono JavaRDD. Le query Spark SQL 1.3.0 restituiscono DataFrame. La conversione di DataFrame in JavaRDD da DataFrame.toJavaRDD sembra richiedere un po 'di tempo. Ho cercato di usare il DataFrame.map() e ottenuto un problema sconcertante: "?"Come creare ClassTag per Spark SQL DataFrame Mapping?
DataFrame df = sqlSC.sql(sql);
RDD<String> rdd = df.map(new AbstractFunction1<Row, String>(){
@Override
public String apply(Row t1) {
return t1.getString(0);
}
}, ?);
dovrebbe essere scala.reflect.ClassTag. Ho usato ClassManifestFactory.fromClass (String.class) e non ha funzionato. Cosa dovrei inserire in "?".
Tra l'altro, l'esempio dato da http://spark.apache.org/docs/1.3.0/sql-programming-guide.html s' Interoperabilità con sezione RDDs codice Java non è corretto: Ha usato 'mappa (nuova function() {' la 'funzione' non è accettabile non ci dovrebbe.. essere "Function1"
questo è un problema con Java 8 per scintilla che dipende EsotericSoftware/reflectasm (attualmente supporta solo Java 7) : https://issues.apache.org/jira/browse/SPARK-6152. –