@@ -39,7 +39,7 @@ use arrow_array::{
3939 types:: Int32Type ,
4040 Array , ArrayRef , RecordBatch , RecordBatchOptions ,
4141} ;
42- use arrow_schema:: { DataType , Field , Schema , TimeUnit } ;
42+ use arrow_schema:: { ArrowError , DataType , Field , Schema , TimeUnit } ;
4343use jni:: sys:: { jint, jlong} ;
4444use std:: {
4545 fs:: OpenOptions ,
@@ -275,7 +275,10 @@ impl SparkUnsafeRow {
275275
276276macro_rules! downcast_builder {
277277 ( $builder_type: ty, $builder: expr) => {
278- $builder. into_box_any( ) . downcast:: <$builder_type>( ) . unwrap( )
278+ $builder
279+ . into_box_any( )
280+ . downcast:: <$builder_type>( )
281+ . expect( stringify!( $builder_type) )
279282 } ;
280283}
281284
@@ -284,7 +287,7 @@ macro_rules! downcast_builder_ref {
284287 $builder
285288 . as_any_mut( )
286289 . downcast_mut:: <$builder_type>( )
287- . unwrap ( )
290+ . expect ( stringify! ( $builder_type ) )
288291 } ;
289292}
290293
@@ -348,8 +351,7 @@ pub(crate) fn append_field(
348351 $field,
349352 field_builder,
350353 & row. get_map( idx) ,
351- )
352- . unwrap( ) ;
354+ ) ?;
353355 }
354356 }
355357 } } ;
@@ -378,8 +380,7 @@ pub(crate) fn append_field(
378380 $element_dt,
379381 field_builder,
380382 & row. get_array( idx) ,
381- )
382- . unwrap( )
383+ ) ?
383384 }
384385 }
385386 } } ;
@@ -1057,7 +1058,7 @@ pub(crate) fn append_columns(
10571058 let element_builder = builder
10581059 . as_any_mut( )
10591060 . downcast_mut:: <$builder_type>( )
1060- . unwrap ( ) ;
1061+ . expect ( stringify! ( $builder_type ) ) ;
10611062 let mut row = SparkUnsafeRow :: new( schema) ;
10621063
10631064 for i in row_start..row_end {
@@ -1084,7 +1085,7 @@ pub(crate) fn append_columns(
10841085 let list_builder = builder
10851086 . as_any_mut( )
10861087 . downcast_mut:: <ListBuilder <$builder_type>>( )
1087- . unwrap ( ) ;
1088+ . expect ( stringify! ( $builder_type ) ) ;
10881089 let mut row = SparkUnsafeRow :: new( schema) ;
10891090
10901091 for i in row_start..row_end {
@@ -1103,8 +1104,7 @@ pub(crate) fn append_columns(
11031104 $element_dt,
11041105 list_builder,
11051106 & row. get_array( column_idx) ,
1106- )
1107- . unwrap( )
1107+ ) ?
11081108 }
11091109 }
11101110 } } ;
@@ -1116,7 +1116,11 @@ pub(crate) fn append_columns(
11161116 let map_builder = builder
11171117 . as_any_mut( )
11181118 . downcast_mut:: <MapBuilder <$key_builder_type, $value_builder_type>>( )
1119- . unwrap( ) ;
1119+ . expect( & format!(
1120+ "MapBuilder<{},{}>" ,
1121+ stringify!( $key_builder_type) ,
1122+ stringify!( $value_builder_type)
1123+ ) ) ;
11201124 let mut row = SparkUnsafeRow :: new( schema) ;
11211125
11221126 for i in row_start..row_end {
@@ -1135,8 +1139,7 @@ pub(crate) fn append_columns(
11351139 $field,
11361140 map_builder,
11371141 & row. get_map( column_idx) ,
1138- )
1139- . unwrap( )
1142+ ) ?
11401143 }
11411144 }
11421145 } } ;
@@ -1148,7 +1151,7 @@ pub(crate) fn append_columns(
11481151 let struct_builder = builder
11491152 . as_any_mut( )
11501153 . downcast_mut:: <StructBuilder >( )
1151- . unwrap ( ) ;
1154+ . expect ( "StructBuilder" ) ;
11521155 let mut row = SparkUnsafeRow :: new( schema) ;
11531156
11541157 for i in row_start..row_end {
@@ -3347,7 +3350,7 @@ pub fn process_sorted_row_partition(
33473350 . zip ( schema. iter ( ) )
33483351 . map ( |( builder, datatype) | builder_to_array ( builder, datatype, prefer_dictionary_ratio) )
33493352 . collect ( ) ;
3350- let batch = make_batch ( array_refs?, n) ;
3353+ let batch = make_batch ( array_refs?, n) ? ;
33513354
33523355 let mut frozen: Vec < u8 > = vec ! [ ] ;
33533356 let mut cursor = Cursor :: new ( & mut frozen) ;
@@ -3382,7 +3385,7 @@ fn builder_to_array(
33823385 let builder = builder
33833386 . as_any_mut ( )
33843387 . downcast_mut :: < StringDictionaryBuilder < Int32Type > > ( )
3385- . unwrap ( ) ;
3388+ . expect ( "StringDictionaryBuilder<Int32Type>" ) ;
33863389
33873390 let dict_array = builder. finish ( ) ;
33883391 let num_keys = dict_array. keys ( ) . len ( ) ;
@@ -3401,7 +3404,7 @@ fn builder_to_array(
34013404 let builder = builder
34023405 . as_any_mut ( )
34033406 . downcast_mut :: < BinaryDictionaryBuilder < Int32Type > > ( )
3404- . unwrap ( ) ;
3407+ . expect ( "BinaryDictionaryBuilder<Int32Type>" ) ;
34053408
34063409 let dict_array = builder. finish ( ) ;
34073410 let num_keys = dict_array. keys ( ) . len ( ) ;
@@ -3420,7 +3423,7 @@ fn builder_to_array(
34203423 }
34213424}
34223425
3423- fn make_batch ( arrays : Vec < ArrayRef > , row_count : usize ) -> RecordBatch {
3426+ fn make_batch ( arrays : Vec < ArrayRef > , row_count : usize ) -> Result < RecordBatch , ArrowError > {
34243427 let mut dict_id = 0 ;
34253428 let fields = arrays
34263429 . iter ( )
@@ -3442,5 +3445,5 @@ fn make_batch(arrays: Vec<ArrayRef>, row_count: usize) -> RecordBatch {
34423445 . collect :: < Vec < _ > > ( ) ;
34433446 let schema = Arc :: new ( Schema :: new ( fields) ) ;
34443447 let options = RecordBatchOptions :: new ( ) . with_row_count ( Option :: from ( row_count) ) ;
3445- RecordBatch :: try_new_with_options ( schema, arrays, & options) . unwrap ( )
3448+ RecordBatch :: try_new_with_options ( schema, arrays, & options)
34463449}
0 commit comments