fastparquet:如何禁用 rle 编码
Posted
技术标签:
【中文标题】fastparquet:如何禁用 rle 编码【英文标题】:fastparquet : how to disable rle encoding 【发布时间】:2017-05-10 16:57:23 【问题描述】:我正在使用 fastparquet 将 pandas 数据帧转换为 parquet 文件。它比我之前使用 pyspark 的方法快得多。
我想使用 spark 读取这些 parquet 文件,即
sqlCtx.read.parquet('/tmp/parquet/test.parquet')
我遇到了一些我设法解决的问题。我现在遇到的问题是 RLE 编码。当我尝试使用 pyspark 读取镶木地板文件时出现以下 java 异常:
Unsupported encoding: RLE
在使用 fastparquet write
方法时有没有办法禁用 RLE?
【问题讨论】:
【参考方案1】:这是 fastparquet 中针对短整数('int8'、'int16'、'uint8'、'uint16')的优化。不幸的是,spark 不支持完整的镶木地板规范。
如果你希望你的数据可以被 spark 读取,你应该首先转换 32 位或 64 位的整数列。
已经考虑实施一种“兼容模式”,以牺牲性能为代价解决这些问题,但目前还没有具体计划。
【讨论】:
以上是关于fastparquet:如何禁用 rle 编码的主要内容,如果未能解决你的问题,请参考以下文章
在 R 中,使用 rle(运行长度编码)的结果,包括命名的行和列标题