Scala: cómo obtener un rango de filas en un marco de datos

tengo unDataFrame creado ejecutandosqlContext.read de un archivo de parquet.

losDataFrame consta de 300 M de hileras. Necesito usar estas filas como entrada para otra función, pero quiero hacerlo en lotes más pequeños para evitar errores de OOM.

Actualmente estoy usandodf.head(1000000) para leer las primeras filas de 1M, pero no puedo encontrar una manera de leer las filas siguientes. Lo intentédf.collect(), pero me da un error de Java OOM.

Quiero iterar sobre este marco de datos. Intenté agregar otra columna con la API withColumn () para generar un conjunto único de valores para iterar, pero ninguna de las columnas existentes en el marco de datos tiene valores únicos.

Por ejemplo, probé valdf = df1.withColumn("newColumn", df1("col") + 1) tanto comoval df = df1.withColumn("newColumn",lit(i+=1)), los cuales no devuelven un conjunto secuencial de valores.

Cualquier otra forma de obtener las primeras n filas de un marco de datos y luego las siguientes n filas, algo que funciona como una función de rango deSqlContext?

Respuestas a la pregunta(1)

Su respuesta a la pregunta