Python Spark数据帧映射分区

Python Spark数据帧映射分区,python,apache-spark,pyspark,apache-spark-sql,Python,Apache Spark,Pyspark,Apache Spark Sql,我需要在Spark DataFrame上进行分布式计算,调用DataFrame块上的一些任意(不是SQL)逻辑。 我做到了: 不幸的是,它导致: AttributeError:'itertools.chain'对象没有属性'toPandas' 我希望在每个映射调用中都有spark DataFrame对象,而不是“itertools.chain”。为什么?如何克服这个问题?试试这个: >>> columns = df.columns >>> df.rdd.map

我需要在Spark DataFrame上进行分布式计算,调用DataFrame块上的一些任意(不是SQL)逻辑。 我做到了:

不幸的是,它导致:

AttributeError:'itertools.chain'对象没有属性'toPandas'

我希望在每个映射调用中都有spark DataFrame对象,而不是“itertools.chain”。为什么?如何克服这个问题?

试试这个:

>>> columns = df.columns
>>> df.rdd.mapPartitions(lambda iter: [pd.DataFrame(list(iter), columns=columns)])

PySpark正在使用itertools.chain将数据传递给mapPartition,因此您正在将此对象传递给它无法识别的函数。“结果”在哪里?你怎么称呼OP中的一些函数?
>>> columns = df.columns
>>> df.rdd.mapPartitions(lambda iter: [pd.DataFrame(list(iter), columns=columns)])