始める無料で始める

コメント行の削除

上司から、新しいデータセットに対して複雑なパース処理を行うよう依頼されました。これは ImageNet データセットのアノテーションデータで、特に犬種と画像内での識別に焦点を当てています。本格的な分析に入る前に、不正確・不正なデータをいくつか取り除く必要があります。文書の一般的なスキーマは不明なため、まずは行全体を 1 列に取り込んで、すばやく分析できるようにしたいと考えています。

最初の手順として、データセット内のすべてのコメント行を削除します。

spark コンテキストと、ベースとなる CSV ファイル(annotations.csv.gz)が利用可能です。col 関数も使用できます。

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

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

コースを見る

演習の手順

  • annotations.csv.gz ファイルを DataFrame に読み込み、行数をカウントします。区切り文字には | を指定します。
  • 先頭が # で始まる行の数をクエリします。
  • ファイルを別の DataFrame として再読み込みし、オプションでコメント文字を指定してコメント行を除外します。
  • 新しい DataFrame の行数を数え、差分が想定どおりか確認します。

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

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

# Import the file to a DataFrame and perform a row count
annotations_df = spark.read.____('____', sep=____)
full_count = annotations_df.____

# Count the number of rows beginning with '#'
comment_count = annotations_df.____(col('_c0').____('#')).count()

# Import the file to a new DataFrame, without commented rows
no_comments_df = ____.____.____('____', ____=____, comment='____')

# Count the new DataFrame and verify the difference is as expected
no_comments_count = no_comments_df.count()
print("Full count: %d\nComment count: %d\nRemaining count: %d" % (____, ____, ____))
コードを編集して実行