1

我有一条记录,我想将其收录到 sagemaker 功能商店的功能组中。特征名称“z”在定义模式中是小数。我有一些来自功能“z”的缺失数据。当我尝试摄取它时,我收到错误:

[{'FeatureName': 'ji', 'ValueAsString': '8829a094'}, {'FeatureName': 'time', 'ValueAsString': '2020-08-27T13:00:00Z'}, {'FeatureName': 't2','ValueAsString':'289.26111111111106'},{'FeatureName':'re','ValueAsString':'86'},{'FeatureName':'pwat','ValueAsString':'0.9609375'},{ 'FeatureName':'li700','ValueAsString':'3'},{'FeatureName':'c','ValueAsString':'0'},{'FeatureName':'d','ValueAsString':'0 '},{'FeatureName':'x','ValueAsString':'0'},{'FeatureName':'y','ValueAsString':'0.0'},{'FeatureName':'z', 'ValueAsString': '无'}]

尝试将名为 [z] 的特征的特征值解析为 Fractional 类型的 FeatureValue。提供的值必须在 IEEE 754 标准定义的双精度浮点数范围内。输入格式可以是十进制形式或科学记数法。

您如何处理缺失数据以摄取到特征组中?

4

1 回答 1

0

自己找到了答案:

def transform_row(row) -> list:
    columns = list(row.asDict())
    record = []
    for column in columns:
        feature = {'FeatureName': column, 'ValueAsString': str(row[column])}
        # We can't ingest null value for a feature type into a feature group
        if str(row[column]) not in ['NaN', 'NA', 'None', 'nan', 'none']:
            record.append(feature)
    return record


def ingest_to_feature_store(args: argparse.Namespace, rows) -> None:
    feature_group_name = args.feature_group_name
    session = boto3.session.Session()
    featurestore_runtime_client = session.client(service_name='sagemaker-featurestore-runtime')
    rows = list(rows)
    for _, row in enumerate(rows):
        record = transform_row(row)
        response = featurestore_runtime_client.put_record(FeatureGroupName=feature_group_name, Record=record)
        assert response['ResponseMetadata']['HTTPStatusCode'] == 200
于 2021-11-15T22:57:52.253 回答