gpt4 book ai didi

azure - 由于输入文件夹不存在,Synapse Spark 作业失败

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

如何对文件读取进行异常处理。

例如,我有一项每日作业将在上午 8:00 运行。它从 Azure 数据湖存储(第 2 代)读取文件。该路径类似于 2022/01/06/data.csv。因此该文件在所有日子里都不会填充到 ADLS 中。因此,只要文件未填充,作业就会失败。所以我尝试使用try-catch来处理异常。还有其他方法处理异常吗?

df1 = spark.read.format('csv').load(fileLocation) 

最佳答案

总结您的问题:spark-job 失败,因为您指向的文件夹不存在。

在 Azure Synapse 上,mssparkutils非常适合这个。这就是您在 Scala 中执行此操作的方式(您也可以对 Python 执行类似操作)。这适用于笔记本以及 Spark/pyspark 批处理作业。


def exists(f: String): Boolean = {
try {
mssparkutils.fs.ls(f)
true
} catch {
case e: Exception => false
}
}


exists("valid/folder") // returns true
exists("abfss://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="20434f4e5441494e45526053544f524147454143434f554e540e4446530e434f52450e57494e444f57530e4e4554" rel="noreferrer noopener nofollow">[email protected]</a>/valid/folder") // returns true

exists("invalid/folder") //returns false
exists("abfss://<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="92f1fdfce6f3fbfcf7e0d2e1e6fde0f3f5f7f3f1f1fde7fce6bcf6f4e1bcf1fde0f7bce5fbfcf6fde5e1bcfcf7e6" rel="noreferrer noopener nofollow">[email protected]</a>/invalid/folder") // returns false

// you can also do below for more info:
mssparkutils.fs.help()

如果存储帐户不是您的主链接存储帐户,您需要提供完整的 URL(abfss 路径)。

我更喜欢提供完整的 url(abfss 路径),因为 synapse 帐户可以有多个链接的存储帐户。所以没有犯错的余地

关于azure - 由于输入文件夹不存在,Synapse Spark 作业失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71126748/

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