5
Per esempio, supponiamo di avere il dataframe:Apache Spark: Come posso convertire uno Spark DataFrame in un RDD con tipo RDD [(Tipo1, Tipo2, ...)]?
var myDF = sc.parallelize(Seq(("one",1),("two",2),("three",3))).toDF("a", "b")
posso convertirlo in un RDD[(String, Int)]
con una mappa:
var myRDD = myDF.map(r => (r(0).asInstanceOf[String], r(1).asInstanceOf[Int]))
Esiste un modo migliore per fare questo, forse utilizzando lo schema DF ?
Ooh, che 'as' funzione è perfetta. –
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? –
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