How would you optimize a query for a large-scale dataset in a distributed computing environment like Hadoop or Spark?