あなたの下には、私がやろうとしているものの簡略版があります。 S3に格納されているを150 parquets
(> 10TB)にロードします。次に、このデータフレームにfunc.monotonically_increasing_id()
というID列を与えます。その後、私はこのdataframe
の2つの偏差を保存します。私が適用機能は、今私はparquet_2
を作成するために、再びS3からすべてのデータをparquet_1
ロードを作成した後にその火花を気づいた私がここに存在するが、私は、これは同じIDが常に同じロジックプランで出力されますか?
DF_loaded = spark.read.parquet(/some/path/*/')
DF_with_IDs = DF_loaded.withColumn('id',func.monotonically_increasing_id())
#creating parquet_1
DF_with_IDs.where(col('a').isNotNull()).write.parquet('/path/parquet_1/')
#creating parquet_2
DF_with_IDs.where(col('b').isNotNull()).write.parquet('/path/parquet_2/')
間でポイントを獲得を期待よりも、もう少し複雑にしています。今私はparquet_1
に与えられたIDがparquet_2
のものと一致しないことを心配しています。同じ行がparquets
に異なるIDを持っていること。
#parquet_1
load_data -> give_ids -> make_selection -> write_parquet
#parquet_2
load_data -> give_ids -> make_selection -> write_parquet
だから、両方
parquets
で同じ行に与えられた同じIDです:限り私はロジック計画スパークは、このようなルックスを思い付くことを理解するため?
私は2.2です。それで解決される – Thagor