我有加速计数据的数据框,我正在努力获得不错的实木复合地板压缩。
编码拼花使用是“PLAIN,BIT_PACKED”我认为使用Delta编码是更合适的算法,但我找不到办法(我也试过fastparquet& pyarrow)
有人知道存储这类数据的有效方法是什么?
df.head() TS id x y z 0 1520937997111 1038186 0.37633 0.45720 -0.77930 1 1520937997147 1038186 0.42979 0.53668 -0.79269 2 1520937997167 1038186 0.39102 0.48924 -0.84486 3 1520937997187 1038186 0.42815 0.41864 -0.84589 4 1520937997207 1038186 0.35527 0.44098 -0.81427 df.dtypes TS int64 id int64 x float64 y float64 z float64 dtype: object schema = StructType([ StructField('TS',LongType(),False), StructField('id',StringType(),False), StructField('x',FloatType(),False), StructField('y',FloatType(),False), StructField('z',FloatType(),False) ]) df_hf = sqlContext.createDataFrame(df, schema) df_hf.write.option("compression","gzip").mode("overwrite").parquet("tst.parquet") parquet-tools meta tst.parquet row group 1: RC:43669 TS:1353947 OFFSET:4 -------------------------------------------------------------------------------- TS: INT64 GZIP DO:0 FPO:4 SZ:77859/349399/4.49 VC:43669 ENC:PLAIN,BIT_PACKED id: BINARY GZIP DO:0 FPO:77863 SZ:1022/480403/470.06 VC:43669 ENC:PLAIN,BIT_PACKED x: FLOAT GZIP DO:0 FPO:78885 SZ:134681/174715/1.30 VC:43669 ENC:PLAIN,BIT_PACKED y: FLOAT GZIP DO:0 FPO:213566 SZ:131936/174715/1.32 VC:43669 ENC:PLAIN,BIT_PACKED z: FLOAT GZIP DO:0 FPO:345502 SZ:130390/174715/1.34 VC:43669 ENC:PLAIN,BIT_PACKED