J'ai une image comme ci-dessous.Évitez de perdre le type de données pour les données partitionnées lorsque vous écrivez à partir de Spark
itemName, itemCategory
Name1, C0
Name2, C1
Name3, C0
Je voudrais enregistrer cette dataframe sous forme de fichier parquet cloisonné:
df.write.mode("overwrite").partitionBy("itemCategory").parquet(path)
Pour ce dataframe, quand je lis les données de retour, il aura chaîne du type de données pour itemCategory
.
Cependant, parfois, j'ai des données d'autres locataires comme ci-dessous.
itemName, itemCategory
Name1, 0
Name2, 1
Name3, 0
Dans ce cas, après avoir été écrit comme partition, lu en arrière, la trame de données résultante aura Int pour le type de itemCategory
de données.
Le fichier de parquet contient les métadonnées qui décrivent le type de données. Comment puis-je spécifier le type de données pour la partition afin qu'il soit relu en tant que chaîne au lieu de Int?
Est-il correct de supposer que lorsque vous lisez dans le « à d'autres moments » dataframes qu'il devient lu dans un CSV ou un format de fichier qui nécessite le type à déduire? – ayplam
Non, les fichiers sont en format parquet, donc les types de données ne sont pas déduits sauf pour les clés de partition. – suriyanto