Я пытаюсь решить старую проблему добавления номера последовательности в набор данных. Я работаю с DataFrames, и похоже, что DataFrame не эквивалентен RDD.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)
)
В моем фактическом приложении origDF не будет загружаться непосредственно из файла - он будет создан путем объединения двух других DataFrames вместе и будет содержать более 100 миллионов строк.
Есть ли лучший способ сделать это? Что я могу сделать для его оптимизации?