我如何将RDD保存到单个实木复合地板文件中?

我使用pyspark 2.0,hadoop 2.7.2.
这是我的代码:

def func(df):
    new_df = pd.DataFrame(df['id'])
    new_df['num'] = new_df['num'] * 12
    return new_df

set = sqlContext.read.parquet("data_set.parquet")
columns = set.columns
map_res = set.rdd.mapPartitions(lambda iter_: func(pd.DataFrame(list(iter_), 
                                                   columns=columns)))

现在,我需要将map_res RDD保存为实木复合地板文件new.parquet.
我有什么办法可以在保存之前不创建大数据框的情况下进行操作?还是有可能分别保存RDD的每个分区,然后合并所有保存的文件?

P.s.由于它的尺寸很大,我想在不创建数据框的情况下进行管理.

解决方法:

只有两种方法可以做到这一点:

一种是使用“ coalesce(1)”
这将确保将所有数据保存到1个文件中,而不是多个文件(200是默认的分区编号)使用dataframe.write.save(“ / this / is / path”).

另一个选项是将输出写入配置单元表,然后使用配置单元-e“ select * from table”> data.tsv,将以制表符分隔.

上一篇:python-在PySpark中计算加权平均值


下一篇:34岁Android程序员裸辞,2021新一波程序员跳槽季