Pyspark: две строки с одинаковой ценностью при идентификации столбца ... Только хочу сохранить одну из строк - PullRequest
0 голосов
/ 29 октября 2018

У меня есть следующий пример данных.

ID      Date
213412  2008-10-26T06:04:00.000Z
213412  2018-10-26T05:42:00.000Z
393859  2018-10-26T09:17:00.000Z

У меня есть два значения идентификатора, которые выше. Я хочу оставить только один из двух рядов для идентификатора 213412 .... мне не важно, какой ряд я храню.

Я знаю, как это сделать в Pandas Python, но не знаю, как это сделать в PySpark.

1 Ответ

0 голосов
/ 29 октября 2018

Вы можете использовать dropDuplicates ()

Пример данных в DataFrame

>>> cols = ['ID', 'Date']

>>> vals =  [
        ('213412', '2008-10-26T06:04:00.000Z'),
        ('213412', '2008-10-26T06:04:00.000Z'),
        ('393859  ', '2018-10-26T09:17:00.000Z'),
        ]

# Create DataFrame
>>> df = spark.createDataFrame(vals, cols)
>>> df.show(3, False)

+--------+------------------------+
|ID      |Date                    |
+--------+------------------------+
|213412  |2008-10-26T06:04:00.000Z|
|213412  |2008-10-26T06:04:00.000Z|
|393859  |2018-10-26T09:17:00.000Z|
+--------+------------------------+

Использовать dropDuplicates ()

# You can simply use df.dropDuplicates(), but by specifying the Column (ID) you are telling Spark to drop based on that column.

df_dist = df.dropDuplicates(["ID"])
df_dist.show(2, False)

+--------+------------------------+
|ID      |Date                    |
+--------+------------------------+
|213412  |2008-10-26T06:04:00.000Z|
|393859  |2018-10-26T09:17:00.000Z|
+--------+------------------------+

Для получения дополнительной информации см.

...