AzureML:TabularDataset.to_pandas_dataframe() 在镶木地板文件为空时挂起

AzureML: TabularDataset.to_pandas_dataframe() hangs when parquet file is empty

我使用 Azure ML python API 创建了表格数据集。有问题的数据是分布在多个分区中的 Azure Data Lake Gen 2 中的一堆镶木地板文件(约 10K 个镶木地板文件,每个文件大小为 330 KB)。当我尝试使用 API TabularDataset.to_pandas_dataframe() 加载数据集时,如果数据集中包含空的 parquet 文件,它将永远继续(挂起)。如果表格数据集不包含那些空的 parquet 文件,TabularDataset.to_pandas_dataframe() 会在几分钟内完成。

通过空镶木地板文件,我的意思是如果我使用 pandas (pd.read_parquet()) 读取单个镶木地板文件,它会导致空 DF (df.empty = = 正确)。

我在处理提到的另一个问题时发现了根本原因 [here][1]

我的问题是如何使 TabularDataset.to_pandas_dataframe() 即使在有空镶木地板文件的情况下也能工作?

更新 该问题已在以下版本中修复:

您可以使用 on_error='null' 参数来处理空值。

您的声明将如下所示:

TabularDataset.to_pandas_dataframe(on_error='null', out_of_range_datetime='null')

或者,您可以在将文件传递给 to_pandas_dataframe 方法之前检查文件的大小。如果文件大小为 0,请根据您的要求使用 python open 关键字将一些示例数据写入其中或忽略该文件。

感谢您的报告。 这是处理包含列但设置为空行的镶木地板文件时的错误。此问题已修复并将包含在下一个版本中。

不过,我无法重现多个文件的挂起问题,所以如果您能提供更多相关信息,那就太好了。