当前位置: 首页 > 知识库问答 >
问题:

PySpark:标识列中值相同的两行…只想保留其中一行

穆建华
2023-03-14
ID      Date
213412  2008-10-26T06:04:00.000Z
213412  2018-10-26T05:42:00.000Z
393859  2018-10-26T09:17:00.000Z

共有1个答案

方浩旷
2023-03-14

可以使用dropDuplicates()

>>> 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|
+--------+------------------------+
# 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|
+--------+------------------------+

有关更多信息,请参阅

  • dropduplicats():http://spark.apache.org/docs/2.1.0/api/python/pyspark.sql.html#pyspark.sql.dataframe.dropduplicats
 类似资料:
  • 问题内容: 该主题的解决方案使我不知所措。 我有一个看起来像的表格(除与我的问题无关的其他字段之外): 名称,卡号,会员类型 现在,我想要一个显示卡号和成员类型相同的行的视图。这两个字段都是整数。名称为VARCHAR。名称不是唯一的,并且相同的名称也应显示重复的卡号,会员类型。 即,如果下表是表格: 我想要: 只需按卡号排序即可使其对人类有用。 最有效的方法是什么? 问题答案: 由于您提到的名称可

  • 问题内容: 我确信必须有一个相对简单的方法来执行此操作,但是此刻正在使我逃脱。假设我有一个这样的SQL表: 现在,我想知道A和B列的每种值组合出现多少次,而与其他列无关。因此,在此示例中,我想要这样的输出: 用什么SQL来确定呢?我觉得这绝对不是一件很不常见的事情。 谢谢! 问题答案:

  • 我在我的jsp中有一个下拉列表,使用Spring mvc,我面临的问题是,在表单提交时,下拉列表中的值会更改为默认值。 我已经绑定了这个下拉列表,如下所示- BackingObject包含ObjectA的List,ObjectA包含另一个Object ObjectB,ObjectB包含基元类型属性id 我正在使用ajax向控制器发送post请求。

  • 我有一个Pandas系列包含一个字符串列表,如下所示: 我只想保留列表中的第一个到第二个条目,如下所示: 我尝试对其进行切片,,但这样做只返回该系列的前两个索引... 我也尝试过和其他切片,但结果不是我想要的。 我怎么能只保留整个熊猫系列清单的前两项呢? 谢谢!

  • 我试图在Excel中编写一个宏来计算a列中相同文本的标准偏差,从B列中获取值,并在C列中给出结果: 我手动输入了等式< code>=STDEV。s(A2;a3;a4;A16)表示“aaa”。但是我需要自动完成这项工作,因为我正在做另一个由宏完成的计算和程序。以下是我的代码: 如果有人能给我一个想法或解决方案,那就太好了。上面的代码用于计算相同文本值的总和。有什么方法可以修改我的代码来计算标准差?