如何使用Spark(pyspark)编写镶木地板文件?

时间:2017-02-03 11:13:27

标签: python pyspark spark-dataframe

我在Spark中很新,我一直在尝试将一个Dataframe转换为Spark中的镶木地板文件,但我还没有成功。 documentation表示我可以使用 write.parquet 函数来创建文件。但是,当我运行脚本时,它向我显示: AttributeError:'RDD'对象没有属性'write'

from pyspark import SparkContext
sc = SparkContext("local", "Protob Conversion to Parquet ")

# spark is an existing SparkSession
df = sc.textFile("/temp/proto_temp.csv")

# Displays the content of the DataFrame to stdout
df.write.parquet("/output/proto.parquet")

你知道怎么做这个吗?

我使用的spark版本是为Hadoop 2.7.3构建的Spark 2.0.1。

2 个答案:

答案 0 :(得分:26)

错误是由于textFile的{​​{1}}方法返回SparkContext而我需要的是RDD

SparkSession有一个DataFrame。因此,在将其转换为镶木地板文件之前,我需要使用SQLContext正确读取CSV文件。

DataFrameReader

答案 1 :(得分:2)

您还可以使用koalas从Spark中写出Parquet文件。该库非常适合喜欢Pandas语法的人们。考拉是引擎盖下的PySpark。

这是考拉代码:

import databricks.koalas as ks

df = ks.read_csv('/temp/proto_temp.csv')
df.to_parquet('output/proto.parquet')

如果需要更多详细信息,请阅读this blog post