Я использую блоки данных для запуска своей работы.
Приведенный ниже код показывает, как я копирую 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())
Может кто-нибудь помочь мне понять, что здесь может пойти не так?
Спасибо!