Koalas applymap将所有数据移动到单个分区

2024-06-10 06:37:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在考拉数据帧上执行元素操作。我使用考拉applymap方法。在执行时,考拉将所有数据移动到一个分区,然后应用该操作。结果是工作表现很差

>>> sdf = spark.range(0, 10**7, 1, 10).toDF('col1').withColumn('col2', F.lit('[1,2]'))

>>> kdf = ks.DataFrame(sdf)

>>> kdf_new = kdf[['col2']].applymap(eval)

WARN window.WindowExec: No Partition Defined for Window operation! Moving all data to a single partition, this can cause serious performance degradation.

如何强制考拉不洗牌数据并在现有分区中应用该操作


Tags: 数据方法元素rangesparkcol2col1分区
1条回答
网友
1楼 · 发布于 2024-06-10 06:37:16

您可以通过在考拉数据帧上指定索引来修复此问题。预计默认索引的性能较差。阅读考拉的default index type

或者指定不同的默认索引

ks.options.compute.default_index_type = 'distributed-sequence'

或者在数据帧上指定特定索引(即不使用默认值)

kdf = kdf.set_index('col1')

相关问题 更多 >