Ich habe einen Dataframe df
, der unter anderem eine Spalte von groupID
hat; Das heißt, jede Beobachtung gehört zu einer bestimmten Gruppe. Insgesamt gibt es 8 Gruppen. Ich würde gerne aus jedem groupID
ein bestimmtes Prozent der Beobachtungen (sagen wir 20%) abfragen. Hier ist mein Ansatz, dies zu tun:Für Schleife Spark Datenrahmen
val sample_df = for (i <- Array.range(0,7)) yield {
val sel_df = df.filter($"groupID"===i)
sel_df.sample(false,0.2,seed1)
}
Das Ergebnis dieser Code ist:
Array[org.apache.spark.sql.DataFrame] = Array([text: string, groupID: int], [text: string, groupID: int])
I flatMap()
auf sample_df
angewendet, aber ich habe einen Fehler:
val flat_df = sample_df.flatMap(x => x)
<console>:59: error: type mismatch;
found: org.apache.spark.sql.DataFrame
required: scala.collection.GenTraversableOnce[?]
Wie kann Ich bekomme einen gesampelten Datenrahmen?
Großartig! Das löst es! – aigujin