如何在循环中创建PySpark DataFrame?

yfwxisqw  于 2023-04-05  发布在  Spark
关注(0)|答案(1)|浏览(180)

如何在循环中创建一个pyspark DataFrame?在这个循环中,在每次迭代中,我打印了2个值print(a1,a2)。现在我想将所有这些值存储在pyspark Dataframe 中。

tf7tbtn2

tf7tbtn21#

最初,在循环之前,您可以使用首选模式创建一个空的dataframe。然后,为每个具有相同模式的循环创建一个新的df,并将其与原始dataframe合并。参考下面的代码。

from pyspark.sql import SparkSession
from pyspark.sql.types import StructType,StructField, StringType

spark = SparkSession.builder.getOrCreate()

schema = StructType([
  StructField('a1', StringType(), True),
  StructField('a2', StringType(), True)
  ])

df = spark.createDataFrame([],schema)

for i in range(1,5):
    a1 = i
    a2 = i+1
    newRow = spark.createDataFrame([(a1,a2)], schema)
    df = df.union(newRow)

print(df.show())

这给了我下面的结果,其中值在每个循环中被附加到df。

+---+---+
| a1| a2|
+---+---+
|  1|  2|
|  2|  3|
|  3|  4|
|  4|  5|
+---+---+

相关问题