У меня есть схема, которую я хочу применить к CSV-файлам в Databricks. Файлы csv могут содержать 6 столбцов (a,b,c,d,e,f), которые могут появляться в файлах csv в случайном порядке. Также может случиться так, что один или несколько столбцов отсутствуют. Таким образом, файлы csv с этими заголовками будут действительными.
a,b,c,d,e,f
f,e,d,c,a,b
a,b,c
d,e,f
Я могу создать пользовательскую схему, но она не обрабатывает другой порядок, а также отсутствующие столбцы. Они применяются последовательно. Любые идеи о том, как с этим можно справиться?
customSchema = StructType() \
.add("a", DoubleType(), True) \
.add("b", DoubleType(), True) \
.add("c", DoubleType(), True) \
.add("d", DoubleType(), True) \
.add("e", DoubleType(), True) \
.add("f", DoubleType(), False)
data = sqlContext.read.format("csv") \
.option("header", "true") \
.option("delimiter", ",") \
.schema(customSchema) \
.load("*.csv")