Я хочу создать столбец ID для моего фрейма данных pyspark, у меня есть столбец A с повторяющимися числами, я хочу взять все разные значения и назначить идентификатор для каждого значения
У меня есть:
+----+
| A|
+----+
|1001|
|1002|
|1003|
|1001|
|1003|
|1004|
|1001|
+----+
И я хочу:
+----+----+
| A| new|
+----+----+
|1002| 1|
|1001| 2|
|1004| 3|
|1003| 4|
+----+----+
это мой код:
# Libraries
import pyspark
from pyspark.sql import SQLContext
import pandas as pd
import numpy as np
from pyspark import SparkContext
sc = SparkContext()
sqlContext = SQLContext(sc)
# Create pyspark dtaframe
df = pd.DataFrame()
df["A"] = [1001,1002,1003,1001,1003,1004,1001]
df = sqlContext.createDataFrame(df)
IDs = df.select("A").distinct()
from pyspark.sql.functions import monotonically_increasing_id
IDs = IDs.withColumn("new", monotonically_increasing_id() )
IDs.show()
И я получаю:
+----+-------------+
| A| new|
+----+-------------+
|1002| 188978561024|
|1001|1065151889408|
|1004|1511828488192|
|1003|1623497637888|
+----+-------------+
Но этодолжно быть:
+----+----+
| A| new|
+----+----+
|1002| 1|
|1001| 2|
|1004| 3|
|1003| 4|
+----+----+
Почему я получаю такой результат?