Spark 2.0的toPandas方法

5

我有一个类似以下的Spark数据框:

topics.show(2)
+-----+--------------------+--------------------+--------------------+
|topic|         termIndices|         termWeights|        topics_words|
+-----+--------------------+--------------------+--------------------+
|    0|[0, 39, 68, 43, 5...|[0.06362107696025...|[, management, sa...||    1|[3, 1, 8, 6, 4, 1...|[0.03164821806301...|[objectives, lear...|+-----+--------------------+--------------------+--------------------+only showing top 2 rows

然而,当我尝试使用以下方法将其转换为 pandas 数据框(在 1.6 版本中有效)时,会出现错误。

topics.toPandas()

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-165-4c1231b68769> in <module>()
----> 1 topics.toPandas()

/Users/i854319/spark2/python/pyspark/sql/dataframe.pyc in toPandas(self)
   1440         """
   1441         import pandas as pd
-> 1442         return pd.DataFrame.from_records(self.collect(), columns=self.columns)
   1443 
   1444     ##########################################################################################

/Users/i854319/spark2/python/pyspark/sql/dataframe.pyc in collect(self)
    307         [Row(age=2, name=u'Alice'), Row(age=5, name=u'Bob')]
    308         """
--> 309         with SCCallSiteSync(self._sc) as css:
    310             port = self._jdf.collectToPython()
    311         return list(_load_from_socket(port, BatchedSerializer(PickleSerializer())))

/Users/i854319/spark2/python/pyspark/traceback_utils.pyc in __enter__(self)
     70     def __enter__(self):
     71         if SCCallSiteSync._spark_stack_depth == 0:
---> 72             self._context._jsc.setCallSite(self._call_site)
     73         SCCallSiteSync._spark_stack_depth += 1
     74 

AttributeError: 'NoneType' object has no attribute 'setCallSite'

不确定在Spark 2.0.2中是否存在此方法的错误或出现了问题?


你是否找到了解决这个问题的方法? - sparknoob
不行,现在失败了。你有解决方案吗? - Baktaawar
1
我在使用pyspark 2.2.1时遇到了同样的问题,我已经切换到2.2.0版本,现在一切都很好! - Nico Coallier
1
@NicoCoallier 谢谢!那就是问题所在。 - Meyk
1个回答

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接