我有几个文件(csv,..)我使用pandas和pyarrow.table (0.17)在磁盘上将其保存为拼图(拼图版本1.4)
colums
id : string
val : string
table = pa.Table.from_pandas(df)
pq.write_table(table, "df.parquet", version='1.0', flavor='spark', write_statistics=True, )但是,Hive和Spark无法识别镶木地板版本:
org.apache.parquet.VersionParser$VersionParseException: Could not parse created_by: parquet-cpp version 1.5.1-SNAPSHOT using format: (.+) version ((.*) )?\(build ?(.*)\)
at org.apache.parquet.VersionParser.parse(VersionParser.java:112)
at org.apache.parquet.CorruptStatistics.shouldIgnoreStatistics(CorruptStatistics.java:60)
at org.apache.parquet.format.converter.ParquetMetadataConverter.fromParquetStatistics(ParquetMetadataConverter.java:263)只是想知道,如何保存为“火花镶嵌”在时髦的格式,而不使用启动火花(即有点夸张)。
元数据似乎丢失了。
基于Pace注释进行编辑:
旧版本的parquer上的问题,现在修复了https://issues.apache.org/jira/browse/PARQUET-349
老版本的蜂巢,Spark仍然有这个问题。https://issues.apache.org/jira/browse/HIVE-19464
Python Arrow不提供拼图版本:https://github.com/apache/arrow/blob/4591d76fce2846a29dac33bf01e9ba0337b118e9/python/pyarrow/_parquet.pxd#L360
发布于 2021-10-22 01:46:35
除了Pace之外,还有很好的评论/建议。
此问题的解决方法是使用快速拼接,如下所示:
import fastparquet as fp
df = df.to_pandas()
fp.write('yourdir', df, fixed_text=None,
compression='SNAPPY', file_scheme='hive')https://stackoverflow.com/questions/69658140
复制相似问题