ripartiziono un dataframe come segue:Prevent DataFrame.partitionBy() di rimuovere le colonne partizionati da schema
df.write.partitionBy("type", "category").parquet(config.outpath)
Il codice dà i risultati attesi (dati partizionati cioè per tipo & categoria). Tuttavia, le colonne "tipo" e "categoria" vengono rimosse dai dati/dallo schema. C'è un modo per prevenire questo comportamento?
non è che un punto? Tutti i dati richiesti sono ancora codificati nella struttura delle directory, quindi non c'è perdita di dati. Se vuoi un valore-per-file potresti provare 'df.repartition (" type "," category "). Write (...)' ma non otterrai una buona struttura. – zero323
@ zero323: sì, sono d'accordo che non ci sono perdite di dati. Tuttavia, il recupero delle colonne utilizzate per il partizionamento non è banale per alcuni casi d'uso. Ad esempio, se voglio caricare i dati nel maiale, come posso recuperare il tipo e le colonne della categoria? – Michael
Non ho usato Pig per un po '. 'ParquetLoader' non capisce la struttura fuori dalla scatola? – zero323