在Azure ML中导入文件夹数据到Pandas DataFrame时遇UTF-8错误
问题原因
错误根源是你用了mltable.from_delimited_files()方法处理Parquet文件——这个方法专门用于读取CSV这类文本分隔格式的文件,而Parquet是二进制列式存储格式,把二进制流当成文本解析自然会触发UTF-8格式错误。单个文件导入正常是因为你当时用了适配Parquet的读取逻辑,而文件夹的自动生成代码误用了分隔符文件的读取方法。
解决方法
修正代码,改用mltable.from_parquet_files()读取文件夹内的Parquet文件,具体代码如下:
import mltable from azure.ai.ml import MLClient from azure.identity import DefaultAzureCredential ml_client = MLClient.from_config(credential=DefaultAzureCredential()) data_asset = ml_client.data.get("folder_name", version="1") path = { 'folder': data_asset.path } # 替换为Parquet专属读取方法 tbl = mltable.from_parquet_files(paths=[path]) df = tbl.to_pandas_dataframe() df
额外优化
如果文件夹内混有非Parquet文件,可以添加过滤规则只读取.parquet后缀的文件:
path = { 'folder': data_asset.path, 'pattern': '*.parquet' }
内容的提问来源于stack exchange,提问作者Ameya Bhave
相关产品推荐
相关产品推荐

