作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我有一个包含 100,000 条记录的 Parquet 文件。我想并行处理所有记录,我的处理将生成更多列。因此,如果我的 Parquet 文件有 3 列和 100,000 条记录,我的文件如下所示 -
col A col B colC
aa bb cc
aa1 bb1 cc1
并行处理后,我想要一个包含相同列和 3 列的新 Parquet 文件。我的输出看起来像这样 -
col A col B colC colD colE colF
aa bb cc dd ee ff
aa1 bb1 cc1 dd1 ee1 ff1
我想知道-
如有任何帮助,我们将不胜感激。
最佳答案
您始终可以将数据重新分区到单个分区中
df.repartition(1)
如果您只是进行实验或使用小型数据集(100,000 条合理长度的记录可以被视为小型数据),它就可以完成工作。但是,如果您希望您的应用程序能够优雅地扩展,您应该避免这种激进的重新分区并编写多个 parquet 文件,拥有多个输出文件有什么不好?
关于你的第二个问题, Parquet 文件被设计成不可变的,所以做你想做的最直接的方法是读取数据,添加相关列并将数据保存回 Parquet (覆盖现有文件,或者将修改后的数据保存到新目录)。
关于hadoop - 如何在 spark 中处理后发布单个 Parquet 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38293869/
我是一名优秀的程序员,十分优秀!