【发布时间】:2021-02-23 18:19:43
【问题描述】:
据我了解,列格式更适合 MapReduce 任务。即使对于某些列的选择,列式也能很好地工作,因为我们不必将其他列加载到内存中。
但在 Spark 3.0 中,我看到在查询计划中应用了这个 ColumnarToRow 操作,据我所知,docs 将数据转换为行格式。
它比柱状表示更有效,有哪些见解可以控制此规则的应用?
对于以下代码,我附上了查询计划。
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()
【问题讨论】:
标签: apache-spark pyspark apache-spark-sql query-optimization