@ file : Suppress (" RECE IVER _ NULL ABILITY _ MIS MATCH _ BASE D _ ON _ JAVA _ AN NOT ATIONS ") Ċ Ċ package Ġcom . sk sam uel . cent ur ion . parquet Ċ Ċ import Ġcom . sk sam uel . cent ur ion . Schema Ċ import Ġcom . sk sam uel . cent ur ion . nullable Ċ import Ġio . kot est . core . spec . style . Fun Spec Ċ import Ġio . kot est . matchers . shouldBe Ċ import Ġorg . apache . hadoop . conf . Configuration Ċ import Ġorg . apache . hadoop . fs . FileSystem Ċ import Ġorg . apache . hadoop . fs . Path Ċ import Ġjava . io . File Ċ import Ġjava . sql . Timestamp Ċ import Ġjava . time . Instant Ċ Ċ class ĠPar quet Reader Test Ġ: ĠFun Spec () Ġ{ ĊĊĠ Ġprivate Ġval Ġconf : ĠConfiguration Ġ= ĠConfiguration () ĊĠ Ġprivate Ġval Ġfs : ĠFileSystem Ġ= ĠFileSystem . getLocal ( conf ) ĊĊĠ Ġinit Ġ{ ĊĊĠĠĠ Ġtest (" reading Ġan Ġexisting Ġpar quet Ġfile ") Ġ{ ĊĊĠĠĠĠĠ Ġval Ġpath Ġ= ĠPath (" file ://" Ġ+ Ġthis . java Class . getResource ("/ userdata . parquet "). file ) ĊĠĠĠĠĠ Ġval Ġreader Ġ= ĠPar quet . reader ( path , Ġconf ) ĊĠĠĠĠĠ Ġval Ġstruct 1 Ġ= Ġreader . read () ĊĊĠĠĠĠĠ Ġstruct 1 . schema ĠshouldBe ĠSchema . Struct ( ĊĠĠĠĠĠĠĠ Ġ" hive _ schema ", ĊĠĠĠĠĠĠĠ ĠSchema . Field (" registration _ d tt m ", ĠSchema . Timestamp Millis . nullable ()), ĊĠĠĠĠĠĠĠ ĠSchema . Field (" id ", ĠSchema . Int 3 2 . nullable ()), ĊĠĠĠĠĠĠĠ ĠSchema . Field (" first _ name ", ĠSchema . Strings . nullable ()), ĊĠĠĠĠĠĠĠ ĠSchema . Field (" last _ name ", ĠSchema . Strings . nullable ()), ĊĠĠĠĠĠĠĠ ĠSchema . Field (" email ", ĠSchema . Strings . nullable ()), ĊĠĠĠĠĠĠĠ ĠSchema . Field (" gender ", ĠSchema . Strings . nullable ()), ĊĠĠĠĠĠĠĠ ĠSchema . Field (" ip _ address ", ĠSchema . Strings . nullable ()), ĊĠĠĠĠĠĠĠ ĠSchema . Field (" cc ", ĠSchema . Strings . nullable ()), ĊĠĠĠĠĠĠĠ ĠSchema . Field (" country ", ĠSchema . Strings . nullable ()), ĊĠĠĠĠĠĠĠ ĠSchema . Field (" birth date ", ĠSchema . Strings . nullable ()), ĊĠĠĠĠĠĠĠ ĠSchema . Field (" salary ", ĠSchema . Float 6 4 . nullable ()), ĊĠĠĠĠĠĠĠ ĠSchema . Field (" title ", ĠSchema . Strings . nullable ()), ĊĠĠĠĠĠĠĠ ĠSchema . Field (" comments ", ĠSchema . Strings . nullable ()), ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ Ġstruct 1 . values ĠshouldBe ĠlistOf ( ĊĠĠĠĠĠĠĠ ĠTimestamp . from ( Instant . of Epoch Milli ( 1 4 5 4 5 2 9 3 2 9 0 0 0 )), ĊĠĠĠĠĠĠĠĠ 1 , ĊĠĠĠĠĠĠĠ Ġ" A mand a ", ĊĠĠĠĠĠĠĠ Ġ" J ordan ", ĊĠĠĠĠĠĠĠ Ġ" aj ordan 0 @ com . com ", ĊĠĠĠĠĠĠĠ Ġ" Female ", ĊĠĠĠĠĠĠĠ Ġ" 1 . 1 9 7 . 2 0 1 . 2 ", ĊĠĠĠĠĠĠĠ Ġ" 6 7 5 9 5 2 1 8 6 4 9 2 0 1 1 6 ", ĊĠĠĠĠĠĠĠ Ġ" Ind onesia ", ĊĠĠĠĠĠĠĠ Ġ" 3 / 8 / 1 9 7 1 ", ĊĠĠĠĠĠĠĠĠ 4 9 7 5 6 . 5 3 , ĊĠĠĠĠĠĠĠ Ġ" Internal ĠAud itor ", ĊĠĠĠĠĠĠĠ Ġ" 1 E + 0 2 " ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ Ġval Ġstruct 2 Ġ= Ġreader . read () ĊĊĠĠĠĠĠ Ġstruct 2 . values ĠshouldBe ĊĠĠĠĠĠĠĠ ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠ ĠTimestamp . from ( Instant . of Epoch Milli ( 1 4 5 4 5 6 2 2 4 3 0 0 0 )), ĊĠĠĠĠĠĠĠĠĠĠ 2 , ĊĠĠĠĠĠĠĠĠĠ Ġ" Al bert ", ĊĠĠĠĠĠĠĠĠĠ Ġ" F reem an ", ĊĠĠĠĠĠĠĠĠĠ Ġ" af reem an 1 @ is . gd ", ĊĠĠĠĠĠĠĠĠĠ Ġ" Male ", ĊĠĠĠĠĠĠĠĠĠ Ġ" 2 1 8 . 1 1 1 . 1 7 5 . 3 4 ", ĊĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠ Ġ" Can ada ", ĊĠĠĠĠĠĠĠĠĠ Ġ" 1 / 1 6 / 1 9 6 8 ", ĊĠĠĠĠĠĠĠĠĠĠ 1 5 0 2 8 0 . 1 7 , ĊĠĠĠĠĠĠĠĠĠ Ġ" Account ant ĠIV ", ĊĠĠĠĠĠĠĠĠĠ Ġ"" ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest (" reading Ġarrays Ġand Ġmaps ") Ġ{ ĊĠĠĠĠĠ Ġval Ġreader Ġ= ĠPar quet . reader ( File ( this . java Class . getResource ("/ map _ array . parquet "). file ), Ġconf ) ĊĠĠĠĠĠ Ġval Ġstruct Ġ= Ġreader . read () ĊĠĠĠĠĠ Ġstruct . schema ĠshouldBe ĠSchema . Struct ( ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" spark _ schema ", ĊĠĠĠĠĠĠĠ Ġfields Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠ ĠSchema . Field ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" map _ op _ op ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= ĠSchema . Map ( Schema . Strings , ĠSchema . Strings . nullable ()). nullable (), ĊĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠ ĠSchema . Field ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" map _ op _ req ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= ĠSchema . Map ( Schema . Strings , ĠSchema . Strings ). nullable (), ĊĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠ ĠSchema . Field ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" map _ req _ op ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= ĠSchema . Map ( Schema . Strings , ĠSchema . Strings . nullable ()), ĊĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠ ĠSchema . Field ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" map _ req _ req ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= ĠSchema . Map ( Schema . Strings , ĠSchema . Strings ), ĊĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠ ĠSchema . Field ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" arr _ op _ op ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= ĠSchema . Array ( Schema . Strings . nullable ()). nullable (), ĊĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠ ĠSchema . Field ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" arr _ op _ req ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= ĠSchema . Array ( Schema . Strings ). nullable (), ĊĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠ ĠSchema . Field ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" arr _ req _ op ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= ĠSchema . Array ( Schema . Strings . nullable ()), ĊĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠĠĠ ĠSchema . Field ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" arr _ req _ req ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġschema Ġ= ĠSchema . Array ( Schema . Strings ), ĊĠĠĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ Ġval Ġexpected Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠ Ġmap Of (" wil ma " Ġto Ġ" ben ji ", Ġ" f red " Ġto Ġ" ben ji "), ĊĠĠĠĠĠĠĠ Ġmap Of (" wil ma " Ġto Ġ" m ight y ", Ġ" f red " Ġto Ġ" m ight y "), ĊĠĠĠĠĠĠĠ Ġempty Map < String , ĠAny ?> (), ĊĠĠĠĠĠĠĠ Ġmap Of (" wil ma " Ġto Ġ" m ight y ", Ġ" bar ney " Ġto Ġ" ben ji "), ĊĠĠĠĠĠĠĠ ĠlistOf (" m ight y "), ĊĠĠĠĠĠĠĠ ĠlistOf (" ben ji ", Ġ" fr ank y "), ĊĠĠĠĠĠĠĠ Ġempty List < Any ?> (), ĊĠĠĠĠĠĠĠ ĠlistOf (" m ight y "), ĊĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠ Ġstruct . values ĠshouldBe Ġexpected ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ