如何以特定顺序使用Databricks dbutilis复制文件

时间:2019-01-11 11:04:39

标签: databricks azure-databricks

该小组的一位成员协助我根据日期将文件复制到关注对象中

copy based on date

我想调整代码以根据文件名中的某些字符复制文件-在下面的示例中,字符为1111、1112、1113和1114 因此,如果我们有四个文件,如下所示:

File_Account_1111_exam1.csv File_Account_1112_testxx.csv File_Account_1113_pringle.csv File_Account_1114_sam34.csv

仅当File_Account_1113_pringle.csv已复制到文件夹时,我才希望将File_Account_1114_sam34.csv复制到该文件夹​​。 同样,如果File_Account_1112_testxx.csv已被复制到文件夹中,等等,我只希望复制File_Account_1113_pringle.csv。

因此,如果所有文件都已复制到文件夹,则其外观类似于以下内容:

dbutils.fs.put("/mnt/adls2/demo/files/file_Account_1111_exam1.csv", data, True)
dbutils.fs.put("/mnt/adls2/demo/files/file_Account_1112_testxx.csv", data, True)
dbutils.fs.put("/mnt/adls2/demo/files/file_Account_1113_pringle.csv", data, True)
dbutils.fs.put("/mnt/adls2/demo/files/file_Account_1114_sam34.csv", data, True)

1 个答案:

答案 0 :(得分:1)

建议在上传文件到DBFS时不要应用任何业务逻辑,我建议上传所有可用文件,然后使用test = sc.wholeTextFiles("pathtofile")读取它们,这将返回文件名和文件内容的键/值RDD。相应的thread。一旦完成,就可以在Spark作业中实现和测试基于文件名的任何排序或筛选业务逻辑。

我希望这会有所帮助。