如何在循环中创建一个pyspark DataFrame?在这个循环中,在每次迭代中,我打印了2个值print(a1,a2)。现在我想将所有这些值存储在pyspark Dataframe 中。
print(a1,a2)
pyspark
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| +---+---+
1条答案
按热度按时间tf7tbtn21#
最初,在循环之前,您可以使用首选模式创建一个空的dataframe。然后,为每个具有相同模式的循环创建一个新的df,并将其与原始dataframe合并。参考下面的代码。
这给了我下面的结果,其中值在每个循环中被附加到df。