Если вы используете df.write.partitionBy('year','month', 'day')
.
Эти столбцы не фактически физически хранятся в данных файла.Они просто отображаются через структуру папок, которую создает partitionBy
.
Пример.partitionBy('year').csv("/data")
создаст что-то вроде:
/data/year=2018/part1---.csv
/data/year=2019/part1---.csv
Когда вы читаете данные обратно, он использует специальный путь year=xxx
для заполнения этих столбцов.
Вы можете доказать это, прочитав вданные одного раздела напрямую.
Пример.year
не будет столбцом в этом случае.
df = spark.read.csv("data/year=2019/")
df.printSchema()
Также ответ @ Шу может быть использован для расследования.
Вы можете спокойно спать, так как эти столбцы не занимают места для хранения.
Если вы действительно не хотите просто видеть столбцы, вы можете поместить представление поверх этой таблицы, исключающее эти столбцы.