使用row_number列更新数据帧

时间:2018-05-16 13:00:17

标签: scala apache-spark hive

我有一个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。

0 个答案:

没有答案