Sto cercando di risolvere l'annoso problema di aggiungere un numero di sequenza a un set di dati. Sto lavorando con DataFrame e sembra che non ci sia DataFrame equivalente a RDD.zipWithIndex
. D'altra parte, le seguenti opere più o meno il modo in cui voglio che:DataFrame-zip zipWithIndex
val origDF = sqlContext.load(...)
val seqDF= sqlContext.createDataFrame(
origDF.rdd.zipWithIndex.map(ln => Row.fromSeq(Seq(ln._2) ++ ln._1.toSeq)),
StructType(Array(StructField("seq", LongType, false)) ++ origDF.schema.fields)
)
Nella mia applicazione effettiva, origDF non verrà caricato direttamente da un file - che sta per essere creato da unendo altri 2-3 DataFrames e conterrà oltre 100 milioni di righe.
C'è un modo migliore per farlo? Cosa posso fare per ottimizzarlo?
Nice! Buon lavoro! –