Pyspark:使用column方法链接,这些方法使用一个输出来输入另一个

时间:2018-02-01 20:23:42

标签: apache-spark pyspark

如果我尝试使用之前withColumn的输出使用withColumn,则需要数小时才能完成:

df_spark.filter(some_criteria).withColumn(
    'Field2', MyCustomUDF('Field1')).withColumn(
    'Field3', MyCustomUDF2('Field2')).write.parquet('Parq.parquet')

但是,如果我分开执行,只需几分钟。

#Step 1
df_spark.filter(some_criteria).withColumn(
    'Field2',MyCustomUDF('Field1')).write.parquet('TmpFile.parquet')

#Step 2
df_spark2 = spark.read.parquet('TmpFile.parquet')
df_spark2.withColumn(
    'Field3',MyCustomUDF2('Field2')).write.parquet('Parq.parquet')
  1. 这确实是预期的行为吗?
  2. 如果不写出临时文件,我可以更有效地完成这项工作吗?例如,你可以从UDF返回两个字段吗?

0 个答案:

没有答案