Csv 从文件读取拼花地板模式
我正在尝试构建一个通用转换程序,其中输入是csv文件,它们的模式在一个单独的文件中。输出是一个压缩的拼花文件 当我在程序中嵌入csv模式时,它工作得很好。但是,当我将相同的模式放在一个单独的物理文件中时,在读取模式文件的第一行后,我收到以下错误消息-Csv 从文件读取拼花地板模式,csv,parquet,Csv,Parquet,我正在尝试构建一个通用转换程序,其中输入是csv文件,它们的模式在一个单独的文件中。输出是一个压缩的拼花文件 当我在程序中嵌入csv模式时,它工作得很好。但是,当我将相同的模式放在一个单独的物理文件中时,在读取模式文件的第一行后,我收到以下错误消息- Caused by: java.lang.IllegalArgumentException: No enum constant org.apache.parquet.schema.Type.Repetition. 我已经试着去查了一下,但是在拼花
Caused by: java.lang.IllegalArgumentException: No enum constant org.apache.parquet.schema.Type.Repetition.
我已经试着去查了一下,但是在拼花地板的上下文中并没有提到这个错误
仅供参考,以下是模式-
message root {
required binary name (UTF8);
required binary city (UTF8);
}
请建议我的前进方向/错误 我通过将模式定义为:
message root { optional int32 voter_id; optional binary name (STRING); optional int32 age; optional binary registration (STRING); optional double contributions; optional int32 voterzone; optional int64 date_time (TIMESTAMP(MILLIS,true));};
也就是说,一行中的所有列。我发现,在windows中,当我们在多行中定义列时,会添加不可见的行尾字符(\r\n),从而导致此崩溃。或者,您可以在代码中将模式定义为:
String message = "message root { " +
" optional int32 voter_id;" +
" optional binary name (STRING);" +
" optional int32 age;" +
" optional binary registration (STRING);" +
" optional double contributions;" +
" optional int32 voterzone;" +
" optional int64 date_time (TIMESTAMP(MILLIS,true));" +
"};";
这也很好。我通过将模式定义为:
message root { optional int32 voter_id; optional binary name (STRING); optional int32 age; optional binary registration (STRING); optional double contributions; optional int32 voterzone; optional int64 date_time (TIMESTAMP(MILLIS,true));};
也就是说,一行中的所有列。我发现,在windows中,当我们在多行中定义列时,会添加不可见的行尾字符(\r\n),从而导致此崩溃。或者,您可以在代码中将模式定义为:
String message = "message root { " +
" optional int32 voter_id;" +
" optional binary name (STRING);" +
" optional int32 age;" +
" optional binary registration (STRING);" +
" optional double contributions;" +
" optional int32 voterzone;" +
" optional int64 date_time (TIMESTAMP(MILLIS,true));" +
"};";
这也行