私はpyspark 2.0、hadoop 2.7.2で動作します。RDDを1つの寄木細工ファイルに保存するにはどうすればよいですか?
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)))
は今、私は寄木細工のファイルnew.parquetとしてmap_res RDDを保存する必要があります。 そしてここでは私のコードです。 保存する前に大規模なデータフレームを作成せずに何かできますか?または、RDDの各パーティションを個別に保存してから、保存したすべてのファイルをマージする可能性がありますか?
p.s.私は本当に大きなサイズのためにデータフレームを作成せずに管理したいです。
@サントンすべての単一のデータフレームをスキーマを保存した大きなものにマージする必要があるようです。 RDDの要素としてそれらを保持すると、DataFrameのように結果を操作することはできません。 –
@ИванСудос正しいので、すべてのデータを1つのノードに移動する必要はありません –
@santonパイプラインを作成すると、パラメータとして1つの寄せ集めファイルが扱いやすくなります –