2017-10-18 103 views
1

我知道我可以做UUID.randomUUID.toString来为我的Dataset中的每一行附加一个ID,但是我需要这个ID是一个Long,因为我想使用GraphX。我如何在Spark中做到这一点?我知道Spark有monotonically_increasing_id(),但那仅适用于DataFrame API - 数据集的情况如何?如何在整数类型的Spark中生成一个GUID ID列

+0

您应该仍然能够使用'monotonically_increasing_id()'。当然,你会得到一个数据框,但这很重要吗?数据框和数据集通常可以互换使用。如果确实如此,您能否提供关于这个特定案例的更多信息? – Shaido

回答

0

我们可以通过拖放到dataframes做到这一点:

case class Row(id: Long, name: String .....) 

val ds: Dataset[Row] = .... 

val ds2 = ds.withColumn("id", monotonically_increasing_id()).as[Row]