【发布时间】:2017-04-10 09:46:13
【问题描述】:
我正在使用 pyspark 我有一张这样的表:
id | ClientNum | Value | Date | Age | Country | Job
1 | 19 | A | 1483695000 | 21 | null | null
2 | 19 | A | 1483696500 | 21 | France | null
3 | 19 | A | 1483697800 | 21 | France | Engineer
4 | 19 | B | 1483699000 | 21 | null | null
5 | 19 | B | 1483699500 | 21 | France | null
6 | 19 | B | 1483699800 | 21 | France | Engineer
7 | 24 | C | 1483699200 | null | null | null
8 | 24 | D | 1483699560 | 28 | Spain | null
9 | 24 | D | 1483699840 | 28 | Spain | Student
基于列 Value,我想为每个 ClientNum 保留不同的值,其中指定了最多的信息(年龄、国家、工作)。
结果应该是这样的:
ClientNum | Value | Date | Age | Country | Job
19 | A | 1483697800 | 21 | France | Engineer
19 | B | 1483699800 | 21 | France | Engineer
24 | C | 1483699200 | null | null | null
24 | D | 1483699840 | 28 | Spain | Student
谢谢!
【问题讨论】:
-
我不能用 df.distinct() 或 df.drop_duplicates() 来做,在我的例子中所有的行都是不同的。我只想保留不同的值。
-
这就是这些答案的内容。让您获得想要保留的独特价值观。
-
此解决方案适用于 2 列,以获得不同的行。但是在我们有多个列的情况下, distinct 将保留所有列,因为每一行都是不同的。我只希望列值不同,并保留其他列。
标签: sql apache-spark pyspark apache-spark-sql spark-dataframe