diff --git a/cpp/src/arrow/pretty_print.cc b/cpp/src/arrow/pretty_print.cc index e666ec70f9489..d6957e73d9166 100644 --- a/cpp/src/arrow/pretty_print.cc +++ b/cpp/src/arrow/pretty_print.cc @@ -425,6 +425,10 @@ Status PrettyPrint(const Array& arr, int indent, std::ostream* sink) { Status PrettyPrint(const Array& arr, const PrettyPrintOptions& options, std::ostream* sink) { ArrayPrinter printer(options, sink); + if (arr.device_type() != DeviceAllocationType::kCPU) { + auto arr_sliced = arr.CopyTo(default_cpu_memory_manager()); + return printer.Print(arr); + } return printer.Print(arr); }