Pyspark 如何遍历spark数据帧的列并逐个访问其中的值?

Pyspark 如何遍历spark数据帧的列并逐个访问其中的值?,pyspark,apache-spark-sql,Pyspark,Apache Spark Sql,我有spark数据框 我想逐个获取列的值,并需要将其分配给某个变量?如何在pyspark中执行此操作。很抱歉,我是spark和stackoverflow的新手。请原谅问题的不明确性我不完全理解您的问题,但是如果您想将它们存储在spark提供的数据帧之外的变量中,最好的选择是选择您想要的列并将其存储为panda系列(如果它们不是很多,因为内存有限) 然后你可以像正常的熊猫系列一样对它进行迭代。不,我需要在每次迭代中访问一个值并将其存储在变量中。我不想使用toPandas,因为它会消耗更多内存!对

我有spark数据框


我想逐个获取列的值,并需要将其分配给某个变量?如何在pyspark中执行此操作。很抱歉,我是spark和stackoverflow的新手。请原谅问题的不明确性

我不完全理解您的问题,但是如果您想将它们存储在spark提供的数据帧之外的变量中,最好的选择是选择您想要的列并将其存储为panda系列(如果它们不是很多,因为内存有限)


然后你可以像正常的熊猫系列一样对它进行迭代。

不,我需要在每次迭代中访问一个值并将其存储在变量中。我不想使用toPandas,因为它会消耗更多内存!对于哪一个专栏,您想这样做?这里有一些关于spark数据框架如何工作的基本误解。不要考虑一个接一个地遍历值,而是考虑同时对所有值进行操作(毕竟,这是一种并行的分布式体系结构)。这似乎是一个错误。请详细解释您正在尝试做什么,并尝试回答您的问题以提供答案。此外,如果行数更多,该怎么办
collect()
操作的成本会很高,对吗?在使用collect()减少时间和内存成本之前,请将数据帧重新分区到实例正在运行的相同数量的节点。
col1=df.select(df.column_of_df).collect()
list1=[str(i[0]) for i in col1]
#after this we can iterate through list (list1 in this case)
col1=df.select(df.column_of_df).collect()
list1=[str(i[0]) for i in col1]
#after this we can iterate through list (list1 in this case)