开始使用免费开始使用

检查不良连接

如果不加小心,连接(join)可能在没有报错的情况下"悄悄出错",返回被破坏的数据,记录条数比您预期的多或少。下面我们看看几种由于连接不当而让数据集变糟的情形。

在本例中,您将看到:当连接键的精度不一致时将两个数据框连接会发生什么,并比较正确连接与错误连接的记录数。

本练习是课程的一部分

使用 PySpark 进行特征工程

查看课程

练习说明

  • 在修正精度之前的数据框 df_origwalk_df 之间创建连接,分别在两个数据框上匹配 longitudelatitude
  • 使用 where()isNull()df['walkscore']correct_join['walkscore'] 上统计缺失值的数量。您会注意到有很多缺失值,因为数据类型与精度不匹配。
  • dfwalk_df 之间创建仅基于 longitude 的连接。
  • 使用 count() 统计记录数:few_keys_dfcorrect_join_df。您会注意到数量多了很多,因为我们没有正确地限制匹配条件。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Join on mismatched keys precision 
wrong_prec_cond = [____ == ____, ____ == ____]
wrong_prec_df = ____.join(____, on=wrong_prec_cond, how='left')

# Compare bad join to the correct one
print(wrong_prec_df.____(____.____()).count())
print(correct_join_df.____(____.____).count())

# Create a join on too few keys
few_keys_cond = [____ == ____]
few_keys_df = ____.join(____, on=few_keys_cond, how='left')

# Compare bad join to the correct one
print("Record Count of the Too Few Keys Join Example: " + str(____.____()))
print("Record Count of the Correct Join Example: " + str(____.____()))
编辑并运行代码