Databricks中PySpark读取Parquet路径报错问题求助
问题排查与解决
你的问题出在路径字符串首尾多了双引号。
看你生成路径的代码:
df = '"' + 'abfss://container@storageaccount.dfs.core.windows.net/bronze/folder1/folder2/' + year + '/' + month + '/"'
这里手动给路径加了首尾的",打印出来看着没问题,但实际传递给Spark的路径是包含双引号的字符串。Spark解析URI时,会把开头的"当作URI协议(scheme)的一部分,这就违反了URI的语法规则,所以报错里会出现%22(这是双引号的URL编码)。
修正方案
直接去掉首尾的双引号,Spark可以直接识别纯字符串格式的路径:
from datetime import datetime now = datetime.now() year = now.strftime("%Y") month = now.strftime("%m") # 去掉首尾的双引号,用f-string拼接更简洁 path = f'abfss://container@storageaccount.dfs.core.windows.net/bronze/folder1/folder2/{year}/{month}/' print(path) # 读取数据 DF = ( spark .read .option("header", "true") .parquet(path) )
这样生成的路径就是纯字符串,没有多余的引号,Spark就能正常解析URI并读取Parquet文件了。
内容的提问来源于stack exchange,提问作者Flock
相关产品推荐
相关产品推荐

