【发布时间】:2021-03-01 21:25:37
【问题描述】:
我在 Databricks 中工作,我试图从按顺序排序的 S3 实例中获取镶木地板数据,但缺少序列的某些部分。所以文件系统可能如下所示:
's3a://databricks-data/STAGING/18',
's3a://databricks-data/STAGING/17',
's3a://databricks-data/STAGING/16',
's3a://databricks-data/STAGING/15',
's3a://databricks-data/STAGING/14',
's3a://databricks-data/STAGING/13',
's3a://databricks-data/STAGING/12',
's3a://databricks-data/STAGING/10',
's3a://databricks-data/STAGING/09',
's3a://databricks-data/STAGING/08',
's3a://databricks-data/STAGING/07'
您会注意到11 丢失了,这就是问题所在。偶尔会丢失其中一些文件夹,而且它不是系统的或可预测的。所以,来自 Python 背景,我想我可以从一个序列中创建一个文件夹列表,然后测试这样的文件夹是否存在,如果存在,读取数据,如果不存在,跳过。像这样的:
paths = ["s3a://databricks-data/STAGING/" + str(ii) for ii in range(100)]
paths = [p for p in paths if p.exists()] #**this check -- "p.exists()" -- is what I'm looking for**
df = spark.read.parquet(*paths)
有谁知道我如何检查 Databricks 中是否存在文件夹/目录?我尝试过使用dbutils,但要么我正在使用不同的版本,要么我不知道我在做什么(可能两者兼而有之),因为没有任何效果。我对 Databricks 很陌生,所以如果我能澄清这个问题,请告诉我。
【问题讨论】:
标签: amazon-s3 pyspark databricks