我與pyspark 2.0,hadoop 2.7.2一起工作。 這裏是我的代碼:如何將RDD保存到單個實木複合地板文件?
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.由於其真正的大尺寸,我想在不創建數據框的情況下進行管理。
@santon看起來需要將所有單個數據框合併到保留模式的大數據框中。將它們保留爲RDD的元素將不允許像DataFrame一樣操作結果。 –
@ИванСудос正確的,所以我不希望所有的數據被移動到一個節點 –
@santon當你做管道單個parquet文件作爲參數更容易處理 –