Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dataframe 无法在pyspark中迭代数据帧_Dataframe_Apache Spark_Pyspark - Fatal编程技术网

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)
在您提供的代码中,您没有将函数的输出分配给任何对象,因此最终没有对原始数据帧列表执行任何操作