2016-01-22 20 views

risposta

8

Utilizzando pattern matching su :

import org.apache.spark.sql.Row 

myDF.map{case Row(a: String, b: Int) => (a, b)} 

In Spark 1.6 + è possibile utilizzare Dataset come segue:

myDF.as[(String, Int)].rdd 
+2

Ooh, che 'as' funzione è perfetta. –

+0

Quindi il pattern che corrisponde a 'Row' sarà più veloce o più sicuro della mia mappa' asInstanceOf'? O si riduce a un'operazione abbastanza simile con una sintassi più pulita? –

+0

La seconda opzione temo. 'Row' (e' DataFrame' in generale) è piuttosto fastidioso quando si tratta di tipizzazione statica. L'uso di 'Dataset' dovrebbe essere molto più efficiente specialmente se non si converte in RDD. – zero323

Problemi correlati