有没有办法将 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 代码。
例如:
(给定四个函数 f1
、f2
、f3
、f4
,采用一个 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"))
[...]
我正在 for 循环中创建四个变量,我试图将这些变量写入 pyspark 中的数据框。然后我想将这个数据帧写入镶木地板和 csv 文件。有没有一种有效的方法来做到这一点。如果可以,请用 pyspark 代码向我解释一下。
实现此目的的一种优雅而有效的方法是将您的 for 循环逻辑转换为纯 Spark 代码。
例如:
(给定四个函数 f1
、f2
、f3
、f4
,采用一个 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"))
[...]