Slide 7
Slide 7 text
処理 処理時間
pl.col(
“value”
).map_elements(lambda x: math.log(x)) 11.38s
pl.col(
“value”
).map_elements(lambda x: np.log(x)) 56.72s
pl.col(
“value”
).map_batches(lambda x: math.log(x)) ComputeError: TypeError:
must be real number, not Series
pl.col(
“value”
).map_batches(lambda x: np.log(x)) 0.63s
pl.col(
“value”
).log() 0.62s
簡易的な実験
06
特定列の各要素のlogを取る処理のパフォーマンスを計測 (レコード数 : 1億件)
・map_elements()は個別にpython処理が走るため、非常に処理が重い
・map_batches()なら一度のpython処理となるため、パフォーマンスへの影響が少ない
※今回の例では、nativeのexpressionでも実装可能。またnp.log(pl.col(“value”))という形のExprとしても記述できる