Pyspark toDF()使用collect()引发IllegalStateException

时间:2019-05-15 09:42:48

标签: python-2.7 pyspark

我正在使用BeautifulSoup和Pyspark爬网。我有一个包含20个链接的测试csv文件,我想在网站中提取链接。

links = spark.read.text("top-20.csv")
b = links.rdd.map(lambda link: crawl(link,depth))

爬网函数返回包含267个元素的列表。如果该行的末尾有toDF()。

b = links.rdd.map(lambda link: crawl(link,depth)).toDF()

然后使用该行。

output = b.collect()

函数抛出

java.lang.IllegalStateException: Input row doesn't have expected number of values required by the schema. 20 fields are required while 267 values are provided.

我不明白为什么它使用toDF()引发异常。当新值为267行时,为什么仍期望有20行?从rdd到df的转换显然不是必需的,但是我对它的工作方式很感兴趣。

0 个答案:

没有答案