Pyspark - 如何处理 for 列表中的错误

问题描述 投票:0回答:1

我写了一些东西来读取由名为

partition_paths
的列表动态提供的一些 Lake 文件的位置:

dfs = [spark.read.parquet(f'{l}') for l in partition_paths]

然后我将在下一行中将所有这些 dfs 合并为一个:

df = reduce(DataFrame.unionAll, dfs)

但是可能

partition_paths
要么构建不正确,要么湖中的位置根本不存在,所以我需要错误处理第一行代码。我怎样才能做到这一点,这样它就不会停止并继续获取所有 dfs?

python pyspark
1个回答
0
投票

我不知道什么是 Spark 或你想要做什么,但我认为你不必使用列表理解。您应该使用通常的 for 循环。

dfs = []
for l in partition_paths:
    try:
        variable = spark.read.parquet(f'{l}')
        dfs.append(variable)
    except:
        print("error occured")

df = reduce(DataFrame.unionAll, dfs)
© www.soinside.com 2019 - 2024. All rights reserved.