2016-02-18 11 views
11

C'è qualche differenza nella semantica tra il df.na().drop() e df.filter(df.col("onlyColumnInOneColumnDataFrame").isNotNull() && !df.col("onlyColumnInOneColumnDataFrame").isNaN()) dove df è Apache SparkDataframe?Differenza tra na(). Cadere() e filtro (col.isNotNull) (Apache Spark)

O devo considerarlo come un bug se il primo non restituisce dopo null (non una stringa Null, ma semplicemente un valore null) nella colonna onlyColumnInOneColumnDataFrame e il secondo fa?

MODIFICA: aggiunto !isNaN() pure. onlyColumnInOneColumnDataFrame è l'unica colonna nel dato Dataframe. Diciamo che il suo tipo è Integer.

+0

Potrebbe fornire un esempio di dati? – zero323

+0

Ho notato quei 'null's con il seguente codice - https://gist.github.com/xjrk58/87dd094e2987ecc448db, ma proverò a semplificarlo e fornirò caso riproducibile con i dati di input. Per essere più precisi dopo aver chiamato 'df.show()' sulla riga 4, la colonna "definitionId" conteneva i valori 'null'. – JiriS

risposta

14

Con df.na.drop() si rilasciano le righe contenenti qualsiasi valore null o NaN.

Con df.filter(df.col("onlyColumnInOneColumnDataFrame").isNotNull()) si rilasciano quelle righe che hanno solo null nella colonna onlyColumnInOneColumnDataFrame.

Se si desidera ottenere la stessa cosa, vale df.na.drop(["onlyColumnInOneColumnDataFrame"]).

+0

Il punto è che 'onlyColumnInOnColumnDataFrame' è l'unica colonna nel dato' DataFrame' e ho anche provato 'isNotNaN()' (o forse era '! IsNan()'), ma sto ancora ottenendo null valori in questa colonna dopo il filtraggio e la domanda è se si tratta di un bug o mi manca qualcosa. – JiriS

+0

Come richiesto da zero323, fornire alcuni dati di esempio. –

+2

Daniel, la chiamata deve essere df.na.drop() e df.na.drop (subset = ["onlyColumnInOneColumnDataFrame"]) – sunny

0

Non so se hai la tua risposta. Ma questo dovrebbe funzionare:

df.na.drop(subset=["onlyColumnInOneColumnDataFrame"]) 

o anche:

df.na.drop(how = 'any') 
+0

La domanda riguarda la differenza tra la funzione – user7294900

Problemi correlati