【发布时间】:2019-11-23 01:26:10
【问题描述】:
我想知道在 pyspark 中使用 中间步骤/列 时是否有任何性能/可扩展性差异:
- 使用 .withColumn() 例如:
df = df.withColumn('bar', df.foo + 1)df = df.withColumn('baz', df.bar + 2)
然后拨打df.select('baz').collect()
对
- 将 Spark 列声明为 Python 变量:
bar = df.foo + 1baz = bar + 2
然后调用
df.select(baz.alias('baz')).collect()
问题:如果需要很多中间步骤/列,例如bar,这两个选项在空间/时间复杂度上会有所不同吗?
【问题讨论】:
-
我看到我的帖子被删除了。事后看来,这很可能是正确的,因为我引用的示例有 foldLeft。除非主持人缺乏沟通。你的例子
标签: apache-spark pyspark apache-spark-sql pyspark-sql