[英]maximum recursion depth exceeded converting pandas dataframe to pyspark dataframe
我是pyspark的新手,并学习从Beautiful汤bs4.element.Tag对象的列表创建pyspark数据框
table = bsoup.findAll(name='tr')
table = [tr.findAll(name='td') for tr in table]
table = [list(tr) for tr in table]
table
[[<td>City\n </td>, <td>Country \n </td>],
[<td>Paris</td>, <td>France</td>],
[<td>Amsterdam</td>, <td>Holland</td>]]
type(table[0][0])
bs4.element.Tag
spsession = SparkSession(sc)
spark_df = spsession.createDataFrame(table)
<path>/venv/lib/python2.7/site-packages/pyspark/sql/types.py in
_infer_type(obj)
967 else:
968 try:
--> 969 return _infer_schema(obj)
970 except TypeError:
971 raise TypeError("not supported type: %s" %
type(obj))
RuntimeError: maximum recursion depth exceeded
似乎在模式推断期间发生了问题,因为由于某种原因未推断出bs4.element.Tag类型
我通过从bs4.element.Tag对象而不是Tag提取的文本内容成功创建pyspark df来证实了这一点,并且一切正常。
有人可以解释为什么不推断出架构吗? 以及如何解决此错误并创建一个包含bs4.element.Tag对象的pyspark数据框?
ps我试图将递归限制增加到更高的值,但上面的错误仍然存在。 将递归限制增加到非常大的值会导致段错误。
我有一个类似的问题,在放入createDataFrame
之前,我手动将bs4.element.Tag
内容转换为字符串
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.