2017-10-18 18 views
1

Je sais que je peux faire UUID.randomUUID.toString pour attacher un ID à chaque ligne dans mon Dataset mais j'ai besoin que cet identifiant soit Long puisque je veux utiliser GraphX. Comment est-ce que je fais ça dans Spark? Je sais que Spark a monotonically_increasing_id() mais c'est seulement pour l'API DataFrame - qu'en est-il des Datasets?Comment générer une colonne ID GUID dans Spark qui est de type entier

+0

Vous devriez pouvoir utiliser 'monotonically_increasing_id()'. Bien sûr, vous obtiendrez une base de données, mais est-ce important? Les données et les ensembles de données peuvent généralement être utilisés de manière interchangeable. Si cela est important, pouvez-vous donner plus d'informations sur ce cas spécifique? – Shaido

Répondre

0

Nous pouvons le faire en laissant tomber dans dataframes:

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

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

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