1

J'essaie de suivre ce example pour enregistrer des données en format parquet et le lire. Si j'utilise le write.parquet("filename"), le travail Spark itératif donne l'erreur queComment enregistrer des données en format parquet et ajouter des entrées

"filename" existe déjà.

Si j'utiliser l'option SaveMode.Append, le travail Spark donne l'erreur

« .spark.sql.AnalysisException: Spécification nom de base de données ou d'autres qualificatifs ne sont pas autorisés pour les tables temporaires ».

Veuillez me faire savoir le meilleur moyen d'assurer que de nouvelles données sont simplement ajoutées au fichier parquet. Puis-je définir des clés primaires sur ces tables de parquet? J'utilise Spark 1.6.2 sur le système Hortonworks 2.5. Voici le code:

// Option 1: peopleDF.write.parquet("people.parquet") 
//Option 2: 
peopleDF.write.format("parquet").mode(SaveMode.Append).saveAsTable("people.parquet") 

// Read in the parquet file created above 
val parquetFile = spark.read.parquet("people.parquet") 

//Parquet files can also be registered as tables and then used in SQL statements. 
parquetFile.registerTempTable("parquetFile") 
val teenagers = sqlContext.sql("SELECT * FROM people.parquet") 
+0

Une approche consiste à lire l'ensemble des données sous forme de données, à supprimer le fichier à l'aide de FileSystem api, puis à relire les données sous forme de fichier parquet –

Répondre

0

Je crois que si vous utilisez .parquet ("...."), vous devez utiliser .mode ('append'), pas SaveMode.Append:

df .write.mode ('append'). parquet ("....")