始める無料で始める

不正な行の削除

コメント行の削除に成功したら、データのおおまかな形式に関する情報がわかりました。DataFrame には最低でも 5 個のタブ区切りの列があるはずです。元の DataFrame は 1 列しかないので、タブ(\t)でデータを分割する必要があります。

DataFrame annotations_df はすでに利用可能で、コメント行は削除済みです。spark.sql.functions ライブラリはエイリアス F で利用できます。DataFrame の初期の行数は変数 initial_count に保存されています。

この演習はコースの一部です

PySpark でデータをクレンジングする

コースを見る

演習の手順

  • annotations_df の列 '_c0' をタブ文字で分割して、新しい変数 tmp_fields を作成します。
  • 直前の手順で得たフィールド数を表す列 'colcount'annotations_df に新規作成します。
  • annotations_df から、フィールドが 5 未満の行をすべて除外します。
  • DataFrame の行数を数え、initial_count と比較します。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

# Split _c0 on the tab character and store the list in a variable
tmp_fields = ____(annotations_df['_c0'], ____)

# Create the colcount column on the DataFrame
annotations_df = annotations_df.____('____', ____(____))

# Remove any rows containing fewer than 5 fields
annotations_df_filtered = annotations_df.____(~ (____))

# Count the number of rows
final_count = ____
print("Initial count: %d\nFinal count: %d" % (initial_count, final_count))
コードを編集して実行