Sparkの新機能です。私は1.6.1で作業しています。 私は大きなファイルを持っているとしましょう、私はRDD [String]をtextFileに読み込んでいます。 次に、いくつかの関数で各行を検証したいと思います。 ファイルが膨大であるため、一定のエラーに達したときに処理を停止したいのですが、1000行としましょう。Apache Sparkで大量のテキストファイルを処理するのを中止します。
val rdd = sparkContext.textFile(fileName) rdd.map(line => myValidator.validate(line))
よう 何かがここで機能を検証します:
def validate(line:String) : (String, String) = { // 1st in Tuple for resulted line, 2nd ,say, for validation error. }
'検証' の内側に誤差を計算する方法?。実際には複数のノードで並列に実行されますか?ブロードキャスト?アキュムレータ?
うまくいく可能性があります。私が必要とするもののように見えます。ありがとう! – user677571
DAGダイアグラムでファイルが2回読み取られる理由を教えてください。 – user677571
あなたは正しいです - 2回現れますが、 'success' RDDを使う前に実行を中断しても(最初のジョブが実行された後で、2番目のジョブは実行されなかったことを意味します)、RDDがメモリに完全にキャッシュされている(UIの 'Storage'セクションで)。だから私はなぜこのステージをスキップしないのか分かりません。私は十分な大きさのファイルでそれを実行していませんでしたが、2番目の仕事ははるかに高速です - おそらく実際にはファイル全体をもう一度読むことはありません。 –