ich einige sql.Row
Objekte, die ich zu einem DataFrame
in Spark-1.6.x konvertieren möchtenscala.collection.immutable.Iterable [org.apache.spark.sql.Row], um Datenrahmen? Fehler: überladene Methode Wert createDataFrame mit Alternativen
Meine Zeilen wie folgt aussehen:
events: scala.collection.immutable.Iterable[org.apache.spark.sql.Row] = List([14183197,Browse,80161702,8702170626376335,59,527780275219,List(NavigationLevel, Session)], [14183197,Browse,80161356,8702171157207449,72,527780278061,List(StartPlay, Action, Session)])
ausgedruckt:
events.foreach(println)
[14183197,Browse,80161702,8702170626376335,59,527780275219,List(NavigationLevel, Session)]
[14183197,Browse,80161356,8702171157207449,72,527780278061,List(StartPlay, Action, Session)]
Also habe ich ein Schema für die Daten;
val schema = StructType(Array(
StructField("trackId", IntegerType, true),
StructField("location", StringType, true),
StructField("videoId", IntegerType, true),
StructField("id", StringType, true),
StructField("sequence", IntegerType, true),
StructField("time", StringType, true),
StructField("type", ArrayType(StringType), true)
))
Und dann ich das schaffen versuchen, die DataFrame
von:
val df = sqlContext.createDataFrame(events, schema)
Aber ich bekomme die folgende Fehlermeldung;
error: overloaded method value createDataFrame with alternatives:
(data: java.util.List[_],beanClass: Class[_])org.apache.spark.sql.DataFrame <and>
(rdd: org.apache.spark.api.java.JavaRDD[_],beanClass: Class[_])org.apache.spark.sql.DataFrame <and>
(rdd: org.apache.spark.rdd.RDD[_],beanClass: Class[_])org.apache.spark.sql.DataFrame <and>
(rows: java.util.List[org.apache.spark.sql.Row],schema: org.apache.spark.sql.types.StructType)org.apache.spark.sql.DataFrame <and>
(rowRDD: org.apache.spark.api.java.JavaRDD[org.apache.spark.sql.Row],schema: org.apache.spark.sql.types.StructType)org.apache.spark.sql.DataFrame <and>
(rowRDD: org.apache.spark.rdd.RDD[org.apache.spark.sql.Row],schema: org.apache.spark.sql.types.StructType)org.apache.spark.sql.DataFrame
cannot be applied to (scala.collection.immutable.Iterable[org.apache.spark.sql.Row], org.apache.spark.sql.types.StructType)
ich nicht sicher, warum ich dies zu umgehen, ist es, weil die zugrunde liegenden Daten in den keine Typinformation?
Jede Hilfe ist sehr geschätzt
Dank, jedoch bekomme ich einige Casting Fehler 'java.lang.ClassCastException: scala.math.BigInt kann nicht auf Java gegossen werden. lang.Integer', nicht sicher warum, wie ich nirgendwo Typen erklärt habe – ukbaz