子集数据帧基于另一个数据帧Pyspark 1.6.1中的匹配值

时间:2017-03-29 13:40:05

标签: pyspark spark-dataframe

我有两个数据帧。第一个数据框只包含一列business_contact_nr,它是一组客户端编号。

| business_contact_nr |
34567
45678

第二个数据框包含多个列,bc包含客户端编号,其他列包含有关这些客户端的信息。

| bc     | gender  | savings | month |
34567     1         100       200512
34567     1         200       200601
45678     0         500       200512
45678     0         500       200601
01234     1         60        200512
01234     1         150       200601

我想要做的是根据第二个数据帧中的客户端编号是否与第一个数据帧中的客户端编号匹配来对第二个数据框进行子集化。

因此,应删除不在第一个数据框中的所有客户编号,在这种情况下,所有行都在bc = 01234

我正在与Pyspark 1.6.1合作。关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:2)

这可以通过join来解决。假设df1是您的第一个数据帧,df2是您的第二个数据帧。然后,您可以先重命名df1.business_contact_nrjoin

df1 = df1.withColumnRenamed('business_contact_nr', 'bc')
df2subset = df2.join(df1, on='bc')