我正在尝试构建一个通用的转换程序,其中输入是csv文件,它们的模式位于单独的文件中 . 输出是压缩的镶木地板文件 .
当我在程序中嵌入csv的模式时,它工作得很好 . 但是,momemnt我把相同的模式放在一个单独的物理文件中,我从模式文件中读取第一行后得到以下错误信息 -
Caused by: java.lang.IllegalArgumentException: No enum constant org.apache.parquet.schema.Type.Repetition.
我试图查找它,但在Parquet上下文中任何地方都没有引用此错误 .
仅供参考,这是架构 -
message root {
required binary name (UTF8);
required binary city (UTF8);
}
请建议前进/错误的方式!
1 回答
通过将模式定义为:我能够解决此问题:
也就是说,一行中的所有列 . 我发现,在windows中,当我们在多行中定义列时,会添加不可见的行尾字符(\ r \ n),从而导致此崩溃 . 或者,您可以在代码中将架构定义为:
这也很好 .