zu Datenrahmen Unter der Annahme, ich folgende rdd habe:Funken: Format eines rdd zu konvertieren
val rdd = sc.parallelize(Seq(('a'.toString,1.1,Array(1.1,2.2),0),
('b'.toString,1.5,Array(1.4,4.2),3),
('d'.toString,2.1,Array(3.3,7.4),4)))
>>>rdd: org.apache.spark.rdd.RDD[(String,Double,Array[Double],Int)]
Und ich möchte, um die Ausgabe zu csv
Format schreiben von .write.format("com.databricks.spark.csv")
, der zu einem Datenrahmen nimmt.
Also zuerst muss ich das aktuelle Schema zu konvertieren ->rdd[(String, String, String, String, String)]
und nach der Konvertierung in df. Ich habe versucht, die folgenden:
rdd.map { case((a,b,c,d)) => (a,b,c.mkString(","),d)}
aber diese Ausgänge:
rdd[(string,double,string,int)]
eine Ahnung, wie es zu tun?
Es gibt eine Bibliothek für diesen Zweck [spark-csv] (https://github.com/databricks/spark-csv/), die für Versionen vor 2.0 funktioniert. –