Dataframe 无法在pyspark中迭代数据帧
我正在尝试按特定顺序排列所有数据帧列,因此执行以下操作:Dataframe 无法在pyspark中迭代数据帧,dataframe,apache-spark,pyspark,Dataframe,Apache Spark,Pyspark,我正在尝试按特定顺序排列所有数据帧列,因此执行以下操作: df1 = df1.select("A", "B", "C", "D") df2 = df2.select("A", "B", "C", "D") df3 = df3.select("A", "B", "C", "
df1 = df1.select("A", "B", "C", "D")
df2 = df2.select("A", "B", "C", "D")
df3 = df3.select("A", "B", "C", "D")
df4 = df4.select("A", "B", "C", "D")
但由于我有多个数据帧(大约20+),我正试图将其转换为一个可以调用的函数:
def selection(df):
df1 = df.select("A", "B", "C", "D")
return df1
然后,我尝试执行如下迭代:
df_list = [df1, df2, df3, df4]
for df in (df_list):
selection(df)
df1.show()
但是当我检查df1.show()
的输出时,它与之前一样,列的顺序仍然不正确。我也没有任何错误。我想我需要将for循环的输出重定向到某个地方,也许这就是导致问题的原因,但是我需要在输出处使用单独的数据帧
欢迎提供任何指导。您需要应用列表中的功能:
def selection(df):
df1 = df.select("A", "B", "C", "D")
return df1
df_list = [df1, df2, df3, df4]
df_list = [selection(df) for df in df_list]
# or equivalently,
# df_list = map(selection, df_list)
在您提供的代码中,您没有将函数的输出分配给任何对象,因此最终没有对原始数据帧列表执行任何操作