擅长:python、mysql、java
<p><em>既然这是一项作业,我就试着解释到底发生了什么,而不仅仅是做答案。希望这会更有帮助!</em></p>
<p>这实际上与pySpark无关;它只是一个普通的Python问题。就像这个错误所说的,当<code>split</code>是一个字符串操作时,您正在尝试分割一个元组。而是通过索引访问它们。你要传递的对象:</p>
<pre><code>[(u'Surreal_News', (u'BAT', u'11')),
(u'Hourly_Sports', (u'CNO', u'79')),
(u'Hourly_Sports', (u'CNO', u'3')),
</code></pre>
<p>是元组的列表,其中第一个索引是unicode字符串,第二个索引是另一个元组。您可以像这样将它们分开(我将用注释对每个步骤进行注释):</p>
^{pr2}$
<p>请注意,在任何地方都不用逗号分隔。还要注意,<code>u'11'</code>是一个字符串,而不是数据中的整数。只要您确定它没有错误,就可以用<code>int(u'11')</code>来转换它。或者,如果您更喜欢指定索引而不是解压缩,则可以执行相同的操作:</p>
<pre><code>first_index, second_index = item
</code></pre>
<p>相当于:</p>
<pre><code>first_index = item[0]
second_index = item[1]
</code></pre>
<p>还请注意,如果您不确定数据将采用何种形式,也就是说,如果有时对象中有两个项,而其他项中有三个项,则这会变得更加复杂。在这种情况下,对一个循环以一种通用的方式进行解包和索引需要更多的思考。在</p>