有没有办法在Parquet文件中将列读作Spark RDD中的行,将每列的全部内容实现为RDD元组中的列表?
我的想法是,对于需要在一组执行程序上运行不可分发的,仅内存的算法(处理整列数据)的情况,我希望能够并行化处理将每列的全部内容发送给执行者。我的初始实现,包括将Parquet文件作为DataFrame
读取,然后将其转换为RDD
并通过aggregateByKey
转置行,结果证明在时间上过于昂贵(可能是由于需要进行广泛的改组)。
如果可能的话,我更愿意使用现有的实现,而不是滚动我自己的ParquetInputFormat,ReadSupport和/或RecordMaterializer的实现。
欢迎提供替代方法的建议。