diff --git a/Cargo.toml b/Cargo.toml
index 3652b93b91a68..8edb7c960f669 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -31,4 +31,4 @@ members = [
exclude = ["python"]
[patch.crates-io]
-arrow2 = { git = "https://github.com/jorgecarleitao/arrow2.git", rev = "f2c7503bc171a4c75c0af9905823c8795bd17f9b" }
+arrow2 = { path = "/Users/shenyijie/oss/arrow2" }
diff --git a/ballista/rust/core/src/execution_plans/shuffle_writer.rs b/ballista/rust/core/src/execution_plans/shuffle_writer.rs
index 71575a0028e9d..63b60f7ac8ec5 100644
--- a/ballista/rust/core/src/execution_plans/shuffle_writer.rs
+++ b/ballista/rust/core/src/execution_plans/shuffle_writer.rs
@@ -33,7 +33,6 @@ use crate::utils;
use crate::serde::protobuf::ShuffleWritePartition;
use crate::serde::scheduler::{PartitionLocation, PartitionStats};
-use arrow::io::ipc::write::WriteOptions;
use async_trait::async_trait;
use datafusion::arrow::array::*;
use datafusion::arrow::compute::aggregate::estimated_bytes_size;
@@ -43,6 +42,7 @@ use datafusion::arrow::io::ipc::read::FileReader;
use datafusion::arrow::io::ipc::write::FileWriter;
use datafusion::arrow::record_batch::RecordBatch;
use datafusion::error::{DataFusionError, Result};
+use datafusion::physical_plan::common::IPCWriterWrapper;
use datafusion::physical_plan::hash_utils::create_hashes;
use datafusion::physical_plan::metrics::{
self, ExecutionPlanMetricsSet, MetricBuilder, MetricsSet,
@@ -198,7 +198,7 @@ impl ShuffleWriterExec {
// we won't necessary produce output for every possible partition, so we
// create writers on demand
- let mut writers: Vec