我有一个243MB的数据集。我需要用row_number更新我的Dataframe 我尝试使用以下方法:
import org.apache.spark.sql.functions._
df.withColumn("Rownumber",functions.monotonically_increasing_id())
现在,在248352
行之后,row_number出错了,row_number
之后8589934592
就这样了。
我也用过,
df.registerTempTable("table")
val query = s"select *,ROW_NUMBER() OVER (order by Year) as Rownumber from table"
val z = hiveContext.sql(query)
使用这种方法,我得到了答案,但这需要更多时间。因此,我不能使用这种方法。
df.rdd.zipwithIndex
在spark-scala中解决这个问题的最佳方法是什么?我使用spark 2.3.0。