2016-07-25 14 views
0

Ich teste einen Klassifikator auf fehlende Daten und möchte Zeilen zufällig in Spark löschen.Spark zufällige Drop-Zeilen

Ich möchte so etwas wie für jede n-te Zeile tun, löschen Sie 20 Zeilen.

Was wäre der beste Weg, dies zu tun?

+0

Jede xte Zeile * random nicht *. – Emre

+0

Nun, wenn n eine Zufallszahl war. – other15

Antwort

1

Wenn es zufällig ist, können Sie sample verwenden diese Methode können Sie einen Bruchteil einer DataFrame nehmen. Wenn Sie jedoch Ihre Daten in training und validation teilen möchten, können Sie randomSplit verwenden.

Eine weitere Option, die weniger elegant ist, ist Ihre DataFrame in eine RDD und verwenden zipWithIndex und Filter von index, vielleicht so etwas wie zu konvertieren:

df.rdd.zipWithIndex().filter(lambda x: x[-1] % 20 != 0) 
+0

Hallo Alberto wird das versuchen. Mein Ziel ist es, fehlende Daten zu simulieren, damit ich sehen kann, wie ein Klassifikator Daten streamen wird, wenn Daten für ein paar Sekunden fehlen. – other15