我在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。
答案 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。