1
と注文したファイルをフィルタリングし、私はフォーマットの大きなログファイルている想像してみて:は、効率的に火花
Timestamp, text
Timestamp, text
Timestamp, text
Timestamp, text
Timestamp, text
Timestamp, text
ログファイルがすでにタイムスタンプによって順序付けされます。 ファイルをsparkでデータフレームとして読み取り、t1とt2のタイムスタンプでフィルタリングすると、 タイムスタンプがt1とt2の間にあるかどうかチェックします。
しかし、dfがすでに注文されていることをスパークする方法はありますか?そうすれば、最初と最後のタイムスタンプを探し、その間にあるすべての行を返すだけですもっと速い?
理想的なソリューションは、あなたの入力を分割するために、次のようになりますので、適切な
where
フィルタリングを次のクエリは、範囲内にないディレクトリからファイルをOMMITます)書き換えられたファイル内に保存しますあなたの 'Timestamp'でファイルを開き、実際に必要なファイルだけを読み込みます。 Sparkは述語のプッシュダウンをサポートしています。もしあなたが 'spark.read.parquet(myParquet.parq).filter(...)'を実行した場合は、関連ファイルを読み込むだけです。 –