Python Spark:将RDD的某些列写入文本文件

时间:2017-06-22 18:42:23

标签: python apache-spark pyspark apache-spark-sql pyspark-sql

我想将RDD的某些列写入文本文件。 目前我正在使用熊猫来做它。

df_2016_pandas = df_2016.select('id', 'source', 'date', 'title', 'abstract', 'content').toPandas()

然后将列转换为字符串以写入文本文件

title_string = ''.join(df_2016_pandas.title.tolist())

output_file.write(title_string)

通过这种方式,我将contentabstract写入同一文本文件。(我希望mt文本文件由titlecontent和{{}组成来自RDD的{1}}。

由于数据量很大(28M记录),我认为使用pandas是低效的。 有没有办法可以在spark(python)中执行它,即将RDD的某些列(元组)写入文本文件。

1 个答案:

答案 0 :(得分:0)

问题太清楚但是从解释看起来你只需要选择列在输出文件中。 PySpark和Pandas的集成并不可取。您可以使用下面的方法直接保存df。这将在分区中存储数据,然后您连接文件并从HDFS下载。

#Tested on pyspark 1.6 
df_2016.select('title', 'abstract', 'content').write.mode("overwrite").format("parquet").save("name_file")