Spark with Javaコネクタを使用してデータを処理しています。Spark Dataframeのcount()APIの代替手段
私がデータで行う必要がある基本的な操作の1つは、データフレーム内のレコード(行)の数を数えることです。
私はdf.count()
を試しましたが、実行時間は非常に遅いです(2-3Mレコードの場合は30-40秒)。
また、正確なカウント数が必要なため、システムの要件により、私はdf.rdd().countApprox()
APIを使用したくありません。
もっと速い実行時間で、df.count()
と全く同じ結果を返す代替案を誰かに教えてもらえますか?
返信いただきありがとうございます。
を使用する方法の参照です。しかし、データフレームに対して複数のアクションを実行する場合は、 'cache()'の使用を検討することができます。https://stackoverflow.com/questions/45749580/same-set-of-tasks-are-repeated-in-multiple-stages -in-a-spark-job/45749730#45749730 – Shaido
実際には、ほとんどの場合、異なるクエリから得た異なるデータセットで実行されるカウントアクションは1つだけです。しかし、ありがとう、Shaido – tuancoltech
私はあなたが(変換ではなく)アクションを実行する前にデータが実際に読み込まれていないと思う。したがって、実行時間は、ディスクまたはデータベースからデータを読み取ることに一部起因する可能性があります。 – Shaido