gpt4 book ai didi

scala - 如何重命名保存在 Azure 数据湖中的文件

转载 作者:行者123 更新时间:2023-12-02 03:23:30 24 4
gpt4 key购买 nike

我尝试在数据 block 中使用 Scala 合并 Datalake 中的两个文件,并使用以下代码将其保存回 Datalake:

val df =sqlContext.read.format("com.databricks.spark.csv").option("header", "true").option("inferSchema", "true").load("adl://xxxxxxxx/Test/CSV") 
df.coalesce(1).write.
format("com.databricks.spark.csv").
mode("overwrite").
option("header", "true").
save("adl://xxxxxxxx/Test/CSV/final_data.csv")

但是文件 final_data.csv 被保存为目录而不是包含多个文件的文件,实际的 .csv 文件被保存为“part-00000-tid-dddddddddddd-xxxxxxxxxx.csv”。

如何重命名此文件以便将其移动到另一个目录?

最佳答案

明白了。它可以使用以下代码重命名并放置到另一个目的地。合并的当前文件也将被删除。

val x = "Source"
val y = "Destination"
val df = sqlContext.read.format("csv")
.option("header", "true").option("inferSchema", "true")
.load(x+"/")
df.repartition(1).write.
format("csv").
mode("overwrite").
option("header", "true").
save(y+"/"+"final_data.csv")
dbutils.fs.ls(x).filter(file=>file.name.endsWith("csv")).foreach(f => dbutils.fs.rm(f.path,true))
dbutils.fs.mv(dbutils.fs.ls(y+"/"+"final_data.csv").filter(file=>file.name.startsWith("part-00000"))(0).path,y+"/"+"data.csv")
dbutils.fs.rm(y+"/"+"final_data.csv",true)

关于scala - 如何重命名保存在 Azure 数据湖中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54101135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com