ディスク上の多数のファイルを繰り返し処理し、各ファイルを開き、解析する必要があります。ファイル名を持つファイルがあります。のみ、それらのファイル名を反復処理する必要があります。私は次のことを実行しようとするとファイルのリストを繰り返し、その内容を抽出しますか? (SparkContextエラー)
%python
def parse(filename):
try:
tf = sc.textFile(filename)
# run parsing code, produce text
return text
except:
return None
:
私はマップ()にこの関数を渡す
parsed_contents = filenames.map(parse)
parsed_contents.top(5)
私はこのエラーを取得する:
例外:それブロードキャスト変数、アクション、または変換からSparkContextを参照しようとしているようです。 SparkContextはドライバでのみ使用でき、ワーカーで実行されるコードでは使用できません。詳細は、SPARK-5063を参照してください。
tryブロック内のコードは、ファイル名を指定して別に実行すると機能します。
指定されたファイルのリストに対して、その内容をどのように反復処理する必要がありますか?
sc.textFile()に渡すファイル名のリストにあるファイルの一部が存在しない場合はどうなりますか?私は現在、rdd1.intersection(rdd2) を実行しています。最初のRDDは、ファイル名を含むファイルとディレクトリリストの2番目のファイルから作成されます。 –
現在の方法は問題ありません。私は別の方法を追加しました。 – septra