Je suis assez nouveau dans Spark et j'ai essayé de convertir un fichier Dataframe en un fichier parquet dans Spark mais je n'ai pas encore eu de succès. Le documentation indique que je peux utiliser la fonction write.parquet pour créer le fichier. Toutefois, lorsque je lance le script, il affiche me: AttributeError: l'objet 'RDD' n'a pas d'attribut '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")
Savez-vous comment faire ce travail?
La version de spark que j'utilise) est Spark 2.0.1 construite pour Hadoop 2.7.3.
L'erreur était due au fait que la méthode textFile
de SparkContext
renvoyait un RDD
et que j'avais besoin d'un DataFrame
.
SparkSession a un SQLContext
sous le capot. Il me fallait donc utiliser DataFrameReader
pour lire correctement le fichier CSV avant de le convertir en fichier de parquet.
spark = SparkSession \
.builder \
.appName("Protob Conversion to Parquet") \
.config("spark.some.config.option", "some-value") \
.getOrCreate()
# read csv
df = spark.read.csv("/temp/proto_temp.csv")
# Displays the content of the DataFrame to stdout
df.show()
df.write.parquet("output/proto.parquet")