Spark DataFrame (в Azure Databricks) сохранить в одном файле на озере данных (gen2) и переименовать файл - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь достичь той же функциональности, что и в этом сообщении Сохранение данных в Spark в одном файле в папке hdfs , за исключением того, что мой файл находится в Azure Озеро данных Gen2, и я использую pyspark в Databricks Записная книжка.

Ниже приведен фрагмент кода, который я использую для переименования файла

from py4j.java_gateway import java_import
java_import(spark._jvm, 'org.apache.hadoop.fs.Path')

destpath = "abfss://" + contianer + "@" + storageacct + ".dfs.core.windows.net/"
fs = spark._jvm.org.apache.hadoop.fs.FileSystem.get(spark._jsc.hadoopConfiguration())
file = fs.globStatus(sc._jvm.Path(destpath+'part*'))[0].getPath().getName()
#Rename the file

Я получаю IndexError: list index out of range в этой строке

file = fs.globStatus(sc._jvm.Path(destpath+'part*'))[0].getPath().getName()

Часть * файл существует в папке.

1) Правильный ли это подход к переименованию файла, который блоки данных (pyspark) записывают в Azure DataLakeGen2, если нет, как еще можно выполнить sh это?

1 Ответ

0 голосов
/ 25 января 2020

Мне удалось решить эту проблему, установив клиентскую библиотеку azure .storage.filedatalake в мою записную книжку. Используя класс FileSystemClient и класс DataLakeFileClient, я смог переименовать файл в озере данных gen2.

...