Spark SQL 1.2.0 Abfragen geben JavaRDD zurück. Spark SQL 1.3.0-Abfragen geben DataFrame zurück. Die Konvertierung von DataFrame nach JavaRDD durch DataFrame.toJavaRDD scheint recht zeitaufwendig zu sein. Ich versuchte, die DataFrame.map() und bekam ein rätselhaftes Problem zu verwenden: "?"Wie erstellt man ClassTag für 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);
}
}, ?);
sollte scala.reflect.ClassTag sein. Ich habe ClassManifestFactory.fromClass (String.class) verwendet und es hat nicht funktioniert. Was soll ich bei "?"
By the way, das Beispiel von http://spark.apache.org/docs/1.3.0/sql-programming-guide.html ‚s Zusammenarbeiten mit RDDs Abschnitt Java-Code nicht korrigiert gegeben: Es "Karte (neue Funktion() {" verwendete die "Funktion" es nicht akzeptabel, sollte es aber.. sein "Function1"
Dies ist ein Problem mit Java 8 für Spark, die auf EsotericSoftware/reflectasm abhängt (nur Derzeit unterstützt Java 7) : https://issues.apache.org/jira/browse/SPARK-6152. –