ошибка: метод read read csv читает только частичный csv на кирпичах данных - PullRequest
0 голосов
/ 12 июля 2019

Я использую блоки данных для запуска своей работы.

Приведенный ниже код показывает, как я копирую csv-файл размером приблизительно 8 ГБ из памяти драйвера блока данных в dbfs:

println("_outputFile size in bytes = " + new File(_outputFile).length())
Files.copy(Paths.get(_outputFile), Paths.get("/dbfs" + _outputFile), StandardCopyOption.REPLACE_EXISTING)
println("dbfs _outputFile size in bytes = " + new File("/dbfs" + _outputFile).length())

Обе инструкции print выше sgow размером около 8 Гб правильно, поэтому я предполагаю, что это должно работать правильно, и весь файл был успешно скопирован.

Но, когда я читаю CSV в кадре данных, как показано ниже -> локально, я получаю 63M строк в качестве счетчика. Но когда я запускаю Databricks, я получаю только 0.5M строк.

val df_with_schema = spark.read.format("csv")
    .option("header", "false")
    .schema(schema)
    .load(path)
println("count = " + df_with_schema.count())

Может кто-нибудь помочь мне понять, что здесь может пойти не так?

Спасибо!

...