無効な行を確認する
結合を使って行のフィルタリングには成功しましたが、無効なデータを確認したい場合もあります。こうしたデータは、後で処理したり、データソースのトラブルシューティングに活用できます。
2 つの DataFrame の差分を見つけて、無効な行を保存したいとします。
spark オブジェクトは定義済みで、pyspark.sql.functions は F としてインポートされています。元の DataFrame split_df と、結合後の DataFrame joined_df は前の状態のまま利用できます。
この演習はコースの一部です
PySpark でデータをクレンジングする
演習の手順
- 各 DataFrame の行数を確認します。
- 無効な行のみを含む DataFrame を作成します。
- 新しい DataFrame の件数が想定どおりか検証します。
- 削除されたフォルダー行の重複なし件数を求めます。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
# Determine the row counts for each DataFrame
split_count = ____
joined_count = ____
# Create a DataFrame containing the invalid rows
invalid_df = split_df.____(____(joined_df), '____', '____')
# Validate the count of the new DataFrame is as expected
invalid_count = ____
print(" split_df:\t%d\n joined_df:\t%d\n invalid_df: \t%d" % (split_count, joined_count, invalid_count))
# Determine the number of distinct folder rows removed
invalid_folder_count = invalid_df.____('____').____.____
print("%d distinct invalid folders found" % invalid_folder_count)