Я использую Spark SQL для загрузки больших файлов CSV и объединения их в общий столбец. После выполнения соединения в моем коде я хотел бы сохранить таблицу обратно в новый файл CSV. Для этого я использую метод write()
в DataFrame. При просмотре файла я был удивлен, увидев, что заголовок распечатывается несколько раз, за ним следуют данные, а за ними - другие заголовки. Например:
name, age, addr, job, salary
name, age, addr, job, salary
name, age, addr, job, salary
Bob, 34, 123 Fake St, Programmer, 10000000
June, 23, 5 Tree Ave., College Student, 15000
Rick, 12, 43 Ware St., Student, 0
name, age, addr, job, salary
name, age, addr, job, salary
name, age, addr, job, salary
<more data here>
Этот вывод является неожиданным, особенно потому, что метод show()
класса DataFrame выводит таблицу на консоль и отображает то, что я ожидал.
Код, который я использую для записи:
bigTable.write().mode(SaveMode.Overwrite).format("com.databricks.spark.csv")
.option("header", "true").save(settings.getValue().outputDir +"/bigTable.csv");
При использовании настройки option("header", "false")
значения данных правильно сохраняются в CSV. Это ошибка?