擅长:python、mysql、java
<p>您必须使用Spark数据帧作为RDD和所需Pandas数据帧之间的中间步骤。</p>
<p>例如,假设我有一个文本文件<code>flights.csv</code>,它已读入到RDD中:</p>
<pre><code>flights = sc.textFile('flights.csv')
</code></pre>
<p>您可以检查类型:</p>
<pre><code>type(flights)
<class 'pyspark.rdd.RDD'>
</code></pre>
<p>如果您只是在RDD上使用<code>toPandas()</code>,它将不起作用。根据RDD中对象的格式,可能需要先处理Spark数据帧。在本例中,此代码执行以下任务:</p>
<pre><code># RDD to Spark DataFrame
sparkDF = flights.map(lambda x: str(x)).map(lambda w: w.split(',')).toDF()
#Spark DataFrame to Pandas DataFrame
pdsDF = sparkDF.toPandas()
</code></pre>
<p>您可以检查类型:</p>
<pre><code>type(pdsDF)
<class 'pandas.core.frame.DataFrame'>
</code></pre>