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 . Struct Ċ import Ġcom . sk sam uel . cent ur ion . parquet . schemas . To Par quet Schema Ċ import Ġorg . apache . hadoop . conf . Configuration Ċ import Ġorg . apache . hadoop . fs . Path Ċ import Ġorg . apache . parquet . hadoop . Par quet FileReader Ċ import Ġorg . apache . parquet . hadoop . Par quet FileWriter Ċ import Ġorg . apache . parquet . hadoop . Par quet Reader Ċ import Ġorg . apache . parquet . hadoop . Par quet Writer Ċ import Ġorg . apache . parquet . hadoop . util . H adoop Input File Ċ import Ġjava . io . File Ċ Ċ object ĠPar quet Ġ{ ĊĊĠ Ġfun Ġcount ( paths : ĠList < Path >, Ġconf : ĠConfiguration ): ĠLong Ġ{ ĊĠĠĠ Ġreturn Ġpaths . sum Of Ġ{ Ġpath Ġ-> ĊĠĠĠĠĠ Ġval Ġinput Ġ= ĠHadoop Input File . from Path ( path , Ġconf ) ĊĠĠĠĠĠ Ġval Ġreader Ġ= ĠPar quet FileReader . open ( input ) ĊĠĠĠĠĠ Ġreader . footer . blocks . sum Of Ġ{ Ġit . rowCount Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠCreate Ġa Ġ[ Par quet Reader ] Ġfor Ġa ĠHadoop Ġ[ Path ]. ĊĠĠ Ġ*/ ĊĠ Ġfun Ġreader ( path : ĠPath , Ġconf : ĠConfiguration ): ĠPar quet Reader < Struct > Ġ{ ĊĠĠĠ Ġreturn ĠPar quet Reader . builder ( Struct Read Support (), Ġpath ) ĊĠĠĠĠĠ Ġ. with Conf ( conf ) ĊĠĠĠĠĠ Ġ. build () ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠCreate Ġa Ġ[ Par quet Reader ] Ġfor Ġa Ġlocal Ġ[ File ]. ĊĠĠ Ġ*/ ĊĠ Ġfun Ġreader ( file : ĠFile , Ġconf : ĠConfiguration ): ĠPar quet Reader < Struct > Ġ{ ĊĠĠĠ Ġreturn ĠPar quet Reader . builder ( Struct Read Support (), ĠPath (" file ://" Ġ+ Ġfile . path )) ĊĠĠĠĠĠ Ġ. with Conf ( conf ) ĊĠĠĠĠĠ Ġ. build () ĊĠ Ġ} ĊĊĠ Ġfun Ġwriter ( ĊĠĠĠ Ġpath : Ġjava . nio . file . Path , ĊĠĠĠ Ġconf : ĠConfiguration , ĊĠĠĠ Ġschema : ĠSchema . Struct , ĊĠĠĠ Ġmode : ĠPar quet FileWriter . Mode Ġ= ĠPar quet FileWriter . Mode . CREATE , ĊĠĠĠ Ġmetadata : ĠMap < String , ĠString > Ġ= Ġempty Map (), ĊĠĠĠ Ġsettings : ĠPar quet Writer Settings Ġ= ĠPar quet Writer Settings (), ĊĠ Ġ): ĠPar quet Writer < Struct > Ġ{ ĊĠĠĠ Ġreturn Ġwriter ( ĊĠĠĠĠĠ ĠPath (" file :// $ path "), ĊĠĠĠĠĠ Ġconf , ĊĠĠĠĠĠ Ġschema , ĊĠĠĠĠĠ Ġmode Ġ= Ġmode , ĊĠĠĠĠĠ Ġmetadata Ġ= Ġmetadata , ĊĠĠĠĠĠ Ġsettings Ġ= Ġsettings , ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġfun Ġwriter ( ĊĠĠĠ Ġpath : ĠPath , ĊĠĠĠ Ġconf : ĠConfiguration , ĊĠĠĠ Ġschema : ĠSchema . Struct , ĊĠĠĠ Ġmode : ĠPar quet FileWriter . Mode Ġ= ĠPar quet FileWriter . Mode . CREATE , ĊĠĠĠ Ġmetadata : ĠMap < String , ĠString > Ġ= Ġempty Map (), ĊĠĠĠ Ġsettings : ĠPar quet Writer Settings Ġ= ĠPar quet Writer Settings (), ĊĠ Ġ): ĠPar quet Writer < Struct > Ġ{ ĊĊĠĠĠ Ġreturn ĠStruct Par quet Writer Builder ( path , ĠTo Par quet Schema . to MessageType ( schema ), Ġsettings . rounding Mode , Ġmetadata ) ĊĠĠĠĠĠ Ġ. with Compression Codec ( settings . compression Codec ) ĊĠĠĠĠĠ Ġ. with Conf ( conf ) ĊĠĠĠĠĠ Ġ// . with Dictionary PageSize () ĊĠĠĠĠĠ Ġ. with Dictionary Encoding ( settings . dictionary Encoding ) ĊĠĠĠĠĠ Ġ. with PageSize ( settings . pageSize ) ĊĠĠĠĠĠ Ġ. with Row Group Size ( settings . row Group Size ) ĊĠĠĠĠĠ Ġ. with Validation ( settings . validation ) ĊĠĠĠĠĠ Ġ. with Write Mode ( mode ) ĊĠĠĠĠĠ Ġ. with Writer Version ( settings . writer Version ) ĊĠĠĠĠĠ Ġ. build () ĊĠ Ġ} Ċ } Ċ Ċ fun Ġ< T Ġ: ĠAny > ĠPar quet Reader < T >. sequence (): ĠSequence < T > Ġ= Ġgenerate Sequence Ġ{ Ġread () Ġ} Ċ fun Ġ< T Ġ: ĠAny > ĠPar quet Reader < T >. read All (): ĠList < T > Ġ= Ġsequence (). toList () Ċ Ċ fun Ġ< T > ĠPar quet Writer < T >. write ( ts : ĠList < T >) Ġ= Ġts . forEach Ġ{ Ġwrite ( it ) Ġ} Ċ