You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用featuretools[spark]处理PySpark DataFrame时遇AttributeError报错求助

解决FeatureTools处理PySpark DataFrame时的"AttributeError: 'DataFrame' object has no attribute 'ww'"问题

问题场景

运行FeatureTools官方示例代码处理PySpark DataFrame时,出现报错:

AttributeError: 'DataFrame' object has no attribute 'ww'

原因分析

FeatureTools依赖Woodwork库管理数据元数据,而pyspark.pandas.DataFrame默认不会自动初始化Woodwork的ww属性,导致add_dataframe方法无法识别数据结构。

解决方案

手动为PySpark Pandas DataFrame初始化Woodwork元数据,步骤如下:

  • 导入Woodwork的init_woodwork函数
  • 创建DataFrame后,调用init_woodwork指定索引和逻辑类型,生成带ww属性的DataFrame
  • 将处理后的DataFrame添加到EntitySet

修改后的完整代码

import featuretools as ft
import pyspark.pandas as ps
from woodwork.logical_types import Double, Integer
from woodwork import init_woodwork

ps.set_option("compute.default_index_type", "distributed")

id = [0, 1, 2, 3, 4]
values = [12, -35, 14, 103, -51]

spark_df = ps.DataFrame({"id": id, "values": values})

# 初始化Woodwork元数据,指定索引和逻辑类型
spark_df_with_ww = init_woodwork(
    dataframe=spark_df,
    index="id",
    logical_types={"id": Integer, "values": Double}
)

es = ft.EntitySet(id="spark_es")
es = es.add_dataframe(
    dataframe_name="spark_input_df",
    dataframe=spark_df_with_ww,
)

es

说明

init_woodwork函数会为DataFrame添加ww属性,FeatureTools通过该属性读取数据的索引、逻辑类型等元数据,从而正常完成EntitySet的创建。

内容的提问来源于stack exchange,提问作者hailee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:20:51