Как переименовать файл, который был сохранен на датаке в Azure - PullRequest
0 голосов
/ 09 января 2019

Я попытался объединить два файла в Datalake, используя scala в блоках данных, и сохранил его обратно в 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-dddddddddd-xxxxxxxxxx.csv'.

Как переименовать этот файл, чтобы я мог переместить его в другой каталог?

1 Ответ

0 голосов
/ 15 января 2019

Понял. Его можно переименовать и поместить в другое место назначения, используя следующий код. Также текущие файлы, которые были объединены, будут удалены.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...