Я пытаюсь прочитать несколько CSV-файлов с помощью искры. Мне нужно пропустить более одной строки заголовка из каждого файла CSV . Я могу добиться этого с помощью приведенного ниже кода.
rdd = df.rdd
schema = df.schema
rdd_without_header = rdd.zipWithIndex().filter(lambda (row, index): index > skip_header).keys()
df = spark_session.createDataFrame(rdd_without_header, schema=schema)
Этот код работает нормально, но если у меня несколько сжатых файлов формата gz, эта операция занимает очень очень много времени для завершения. Разница в 10 раз при использовании сжатого файла s по сравнению с несжатым файлом s .
Поскольку я хочу пропустить несколько строк заголовка из всех файлы, я не могу использовать опцию пропустить заголовок spark
option("header", "true")
Какой должен быть лучший и оптимизированный способ обработки этого варианта использования.