有没有办法将 for 循环期间创建的变量写入 pyspark 中的数据框?

Is there a way to write variables created during a for loop to a dataframe in pyspark?

我正在 for 循环中创建四个变量,我试图将这些变量写入 pyspark 中的数据框。然后我想将这个数据帧写入镶木地板和 csv 文件。有没有一种有效的方法来做到这一点。如果可以,请用 pyspark 代码向我解释一下。

实现此目的的一种优雅而有效的方法是将您的 for 循环逻辑转换为纯 Spark 代码。

例如:

(给定四个函数 f1f2f3f4,采用一个 int 参数并给定 spark SparkSession实例)

下面的for循环:

for i in range(1000000):
    v1, v2, v3, v4 = f1(i), f2(i), f3(i), f4(i)
    [...]

可以翻译成:

from pyspark.sql.functions import udf
df = spark.range(1000000)\
  .withColumn("v1", udf(f1).apply("id"))\
  .withColumn("v2", udf(f2).apply("id"))\
  .withColumn("v3", udf(f3).apply("id"))\
  .withColumn("v4", udf(f4).apply("id"))
[...]