0

我正在尝试实现与此 SO post Spark 数据帧保存在 hdfs 位置的单个文件中相同的功能,但我的文件位于 Azure Data Lake Gen2 中,并且我在 Databricks 笔记本中使用 pyspark。

下面是我用来重命名文件的代码片段

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()

文件夹中确实存在 part* 文件。

1)这是重命名databricks(pyspark)写入Azure DataLakeGen2的文件的正确方法,如果不是,我还能如何做到这一点?

4

1 回答 1

0

我可以通过在我的 databricks 笔记本中安装azure.storage.filedatalake客户端库来解决此问题。通过使用 FileSystemClient 类和 DataLakeFileClient 类,我能够重命名数据湖 gen2 中的文件。

于 2020-01-25T01:03:45.713 回答