我正在尝试实现与此 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的文件的正确方法,如果不是,我还能如何做到这一点?