小编kar*_*r09的帖子

ColumnarToRow 如何在 Spark 中高效操作

在我的理解中,柱状格式更适合 Map Reduce 任务。即使对于某些列的选择,柱状也能很好地工作,因为我们不必将其他列加载到内存中。

但是在 Spark 3.0 中,我看到这个ColumnarToRow操作被应用于查询计划中,根据我从文档中可以理解的内容将数据转换为行格式。

它比柱状表示的效率如何,支配该规则应用的见解是什么?

对于以下代码,我附上了查询计划。

import pandas as pd

df = pd.DataFrame({
    'a': [i for i in range(2000)],
    'b': [i for i in reversed(range(2000))],
})

df = spark.createDataFrame(df)

df.cache()
df.select('a').filter('a > 500').show()

Run Code Online (Sandbox Code Playgroud)

查询计划

mapreduce query-optimization apache-spark apache-spark-sql pyspark

8
推荐指数
1
解决办法
322
查看次数